Been running services myself for a few years now. This is what I'm lately running. Maintenance is just running apt-get update and upgrade myself every 2 weeks. Apart from that, I don't spend much time on it. The config is basically a Git repo with one folder per Docker Compose service. And then one Caddy which reverse proxies to the other services. I just give each service a unique port. Not Docker network namespaces nonsense. Everything is just a separately running Docker service and they connect via the ports.

- fx (my own blog software)

- syncthing (sync files to remote servers for backup)

- borgbackup (store old copies of files for backup; via cron)

- radicale (calendar)

- pingvin-share-x (file sharing with other people)

- Forgejo (GitHub-like clone; using it many times a day most days)

- vaultwarden (self-hosted Bitwarden)

- immich (not really using it much)