Our server config files are currently all over the place. We have docker-compose and Dockerfiles. In addition, the configuration set in the specific / local versions of settings*.py are different for develop, staging and prod (well, not the specific values but what is configure and how) and contain duplicates We should clean that up!
Ideas / potential todos:
- clean up
docker-compose and Dockerfiles
- docker compuse gets config from env files
- aiming for this workflow: download docker compose, take
example.env, create your own specific env file (e.g. production.env?), fill in config information and start docker
settings.py is / stays static (as it partains only to imlementation specific details but nothing user configurable)
- different versions of
settings_local.*.py
Additional todo:
- remove one of the memory caches: Currently, we have
memcached and redis docker containers. We should use only one to reduce complexity and cut down the number of docker containers that are needed for the project
Some manage commands could also be executed automatically:
collect static (easy to forget but vital)
- (some?) database migrations
- database backups (regular via cron?)
Adjust communication to outside world:
Changes (especially breaking changes) like those to docker-compose files, env files and manage commands should properly communicated via the release notes. We could even consider adding a docker-compose.yml to those releases, similar to here: https://github.com/immich-app/immich/releases/tag/v1.137.0
Also update the .readme accordingly!
Edit: As discussed in the refinement meeting, we should also add (minimal) contribution guidelines to our readme files for ui and server repository.
Our server config files are currently all over the place. We have
docker-composeandDockerfiles. In addition, the configuration set in the specific / local versions ofsettings*.pyare different fordevelop,stagingandprod(well, not the specific values but what is configure and how) and contain duplicates We should clean that up!Ideas / potential todos:
docker-composeandDockerfilesexample.env, create your own specificenvfile (e.g.production.env?), fill in config information and start dockersettings.pyis / stays static (as it partains only to imlementation specific details but nothing user configurable)settings_local.*.pyAdditional todo:
memcachedandredisdocker containers. We should use only one to reduce complexity and cut down the number of docker containers that are needed for the projectSome manage commands could also be executed automatically:
collect static(easy to forget but vital)Adjust communication to outside world:
Changes (especially breaking changes) like those to
docker-composefiles,envfiles and manage commands should properly communicated via the release notes. We could even consider adding adocker-compose.ymlto those releases, similar to here: https://github.com/immich-app/immich/releases/tag/v1.137.0Also update the
.readmeaccordingly!Edit: As discussed in the refinement meeting, we should also add (minimal) contribution guidelines to our readme files for ui and server repository.