Easily manage your Shared-Source Consortium infrastructure
Shasoco is a solution for managing a shared-source consortium infrastructure:
- self-hosted
- based on open technologies
It is developed as a utility on the command line.
- easy to deploy
- easy to upgrade
- easy to migrate
- wordpress
- LDAP server (fusiondirectory)
- gitlab community
- redmine
- forum
- https file server (with authentication)
Service 3,4,5,6 use the LDAP server for authentication (same login/password for all services)
A reverse proxy (nginx/haproxy) do the routing depending on the hostname.
This step by step tutorial will get you started.
Shasoco's only requirement is to have latest version of docker installed on the host.
To install shasoco
globally, execute the below:
curl https://raw.githubusercontent.com/shasoco/shasoco/master/shasoco | sudo tee /usr/local/bin/shasoco && sudo chmod +x /usr/local/bin/shasoco
git clone https://github.com/shasoco/shasoco.git
cd shasoco
cp shasoco /usr/local/bin/shasoco
./build-image
- shasoco create v0 fovea.cc
- shasoco up v0
- shasoco activate v0
The create command generates a config.yml
file in /var/lib/shasoco/deploys/<id>
. This config file holds the settings for a particular deployment. It can be edited manually later if needed.
The up command takes the config.yml
file and generates a docker-compose.yml
file, plus a few config files, from the settings. It then basically does docker-compose up
to start all services.
The activate command makes sure shasoco's top-level load-balancer sends traffic to the selected deployment. If any other deploy with the same domain name was active already, it will stop receiving traffic.
Advanced note: create
also creates a vault
directory for the domain if needed...
- shasoco stop v0 (if needed)
- shasoco backup v0 mybackup
- shasoco restore v0 v0/mybackup
You can also restore to a new deploy:
- shasoco create v1 fovea.cc
- shasoco restore v1 v0/mybackup
- shasoco deactivate
- shasoco backup v0 b4upgrade
- shasoco create v1 fovea.cc
- shasoco restore v1 v0/b4upgrade
- shasoco up v1 (TODO: deploy new version)
- shasoco activate v1
For the list of supported command line options:
shasoco help [command]
The test
script uses vagrant to perform high-level integration tests on a fresh VM.
./intest
It'll build the image from the current working-tree.