This repository is the control repository for our microservice-based site. Our site is comprised of the following microservices:
The code on the v2 branch is deprecated, and was split up into the above microservices. The much older v1 code is available from the master branch at commit 3b18b9f.
This repository is used to manage our site, from configuring our DNS to managing our server. We use git because it allows us the ability to version our configurations, and to control any number of deployments through indirect modification and CI triggers rather than direct changes. This allows our entire site to be server and service agnostic, in that we could pick up our entire website and move it to other infrastructure. In addition, we use this repository for common documentation that is relevant to all microservices and the site as a whole.
We control our Rancher server and the Docker-based microservices above that make up our site using a
docker-compose.yml
file for basic Docker container configuration, and a rancher-compose.yml
file to configure Rancher-specific
settings for each stack.
Once pushed to this repository, any changes will be deployed to our server by Semaphore CI.
When updating CI or DNS settings, make sure to update the relevant files in this repository (CI.md and DNS.md).
When microservice updates are truly ready for production, fetch and checkout the stable commit in the relevant submodule. Then, update the image entries in the docker-compose.yml.