I love selfhosting. Right now I have this in my personal docker-compose.yaml: NextCould (3 installs, each their own MariaDB instance), HomeAssistant, Mosquitto, Vaultwarden, an Nginx served static website, Unifi controller, nzbget, Samba, librespeed, Wireguard, 4 MineCraft servers, AdGuard home, FoundryVTT and Traefik as reverse proxy for https (it's all 1 yaml file, everything! At least, excluding the HA config etc). All on a 16 GB RAM, corei3 based server. Home Assistant tells me it is consuming about 30 W right now (and generally stays between 30-35W). That's about 70 eur a year for multi-terabyte personal cloud, and docker-compose makes managing it very easy (docker-compose pull, docker-compose up -d). Over the past 2 years I had only one issue (I had to pin Mariadb to 10.5 or NextCloud complains).

Oh, the initial costs are of course quite high, including all disks I'd say about 1000 eur, so it's quite the hobby (I have a nice Fujitsu motherboard (3 y/o) and Fractal Design case (12 y/o), it saw 3 builds now, I started with a super cheap atom based board, then a Pentium dual core, and now the corei3 system that can handle a lot more disks, the nvme root drive makes it so fast.) I wonder about my next system. I also have a corei3 based Nuc (as htpc) and that thing is also very fast, silent and energy efficient. And it has nice and fast external I/O. Not sure yet, but my current system will last at least another 5 years.

My father has a Synology NAS and for some time I thought that would be my next system because I'd get tired of the associated sys-admin tasks at some point (I started with a Gentoo system and there were no containers, meaning you have to set up php-fpm, then mariadb, then download Next(Own)Cloud, then update it regularly, pff and the migrations to other systems...). But docker-compose really changed that for me, I think the Synology would be more work.

Btw, a nice podcast on Selfhosting where I got a lot of inspiration from: [0]

[0]: https://selfhosted.show

My hosting stack seems to be similar to yours. In addition to the services themselves, I run a watchtower container to check for new images for me, which then notifies me through yet another selfhosted solution: gotify. I have watchtower setup not to automatically recreate the containers (I've been bitten by postgres updates a few times too many).

Speaking of Wireguard: I've been looking for a web-based management interface to define Wireguard networks with (using the server it runs on as a sort of central "hun"), but haven't yet found anything I really like and/or found simple enough to use. What does your Wireguard setup look like?

Watchtower: https://github.com/containrrr/watchtower Gotify: https://github.com/gotify/server