## Services Each of these yaml files define a service to be run via docker/podman compose. Any supporting files are in the corresponding folder. Each service should be self-contained. ### Required Services #### [Backup](https://duplicity.us/docs.html) we have a backup script that uses duplicity, this should be moved into a container, and set to run periodically #### [Caddy](https://caddyserver.com/docs/) caddy is the web server, and handles https certificates, and proxying to all the services. #### [Zitadel](https://zitadel.com/docs) **WIP** zitadel lets you have a single username and password to sign on to all your services. ### Optional Services #### Web Static web hosting, edit using webDAV. WebDAV is the easiest way for people to edit websites, without having to sync anything. ### Adding a new service There are three things to think about when adding a service: 1. How to enable sign-in with zitadel? Generally, zitadel has some cli commands that we have put in scripts in the zitadel folder. 2. How to expose as a subdomain in caddy? You will want to make a Caddyfile, which will get mounted by the Caddy compose file. 3. How will this be backed up and restored? We backup all files in the data/ directory, but if your service interacts with a database like postgres, will need additional work.