# Hammerhead Configuration ## Roadmap 0. Prior * The OS is fully installed and configured using the `os/config` Ansible scripts. * Since Hammerhead is its own one-node cluster, Consul and Nomad have been reconfigured wth `bootstrap_expect == 1` manually. 1. Base components: things that need to be installed before services * [x] Dummy HTTP server to have something to work with. * [x] Reverse-proxy/load-balancer: nginx is a good match for a one-node deployment. Installing it with Nomad/Consul will make me practice Consul Template etc. * [x] Generate services configuration outside the nginx service definition. Can't do because of *separation of concerns*: files needed by nginx need to be defined in the nginx job specification. Solution: each new service needs to add its nginx configuration to `app/nginx/config`. * The services URL should be accessible from Consul using tags, instead of being hard-coded in configuration files. * The dummy HTTP server replicas must not be accessible through the Internet. * TLS: Let's Encrypt will probably be part of the same job definition as nginx. 2. Gitea migration * Postgres database: needs to be its own Nomad job. * Gitea: setting it up on Nomad. * Migrating data from Serenity, where the DB is MySQL. Expect fun times. * Database & files periodic backups 3. Synapse migration * Postgres already setup * Migrating from a Postgres on Serenity (easier) * Backups 4. [Own/Next]cloud: Adrien needs it for himself. * Compare distribution capabilities / S3-compatibility between the two solutions. The assumption is that Owncloud's Go rewrite is the better fit. * Do the things.