These are the applications I personally host.

My home server:

- Nextcloud
It is my family's main cloud platform, with a 4TB nas HDD.
I run it with PHP opcahe enabled and nginx caching to speed it up.
And since its local, the upload/download speed is unmatched.

- Nginx proxy manager(NPM) and Portainer
For NPM its easy and simple to maintain, and the WebUI makes it easy for someone else to change settings
Its mostly the same reason with Portainer, but I prefer to not use it, its very handy capped, quite often in stupid ways like not being able to disable the admin account when enabling sso, just to push you towards the paid version

- Pihole

- qbittorrent

- uptime kuma
Easy and simple way to monitor websites I manage.
I wish they showed incident history in the status page.

- IPfire Firewall
Its easy, simple and gets out of the way, I mainly use it to block outside dns and as a doh resolver.
There is also file caching using squid proxy, but its a headache to make devices actually use it.

I don't use its dns directly, devices connect to Pihole which filters queries then forwardes it to ipfire.
Pihole is more advanced and has many community integrations.

All of it is running of Proxmox, ipfire as a VM, and all others are running inside a debian LXC with docker, nextcloud is on a separate LXC so I can ZFS snapshot it independently of others.

I also have a personal vps.

I host a matrix server(Synapse) on it, and its been a good experience, its not light, IMO it needs at least 2VCpus with 4gb of ram(on hetzner).
I'm still a bit hesitant about installing bridges on it, since bridges decrypt messages, I may install it on the home server but its upload speed is limited to 25mpbs.

I also host headscale[1]
Its a reversed engineered open source tailscale server implementation.
It supports most of tailscale features.
It mostly good enough, I also use the same server as an exit node, so its a full vpn.

I want to use a mesh vpn so I can have a single ip which will have full performance in my home while it still works when I'm out, because I have a separate pihole on the vpn server which has more opinionated ad lists for me and still have DNS filtering on the go.
Yes I can just use the homes pihole, but the rest of the family doesn't use my vpn, so the dns override would breaks their connection.

And since tailscale/headscale support an exit node, I don't have to lose my normal VPN.

I'm not sure if I'm going to stick with it long term though, the tailscale app needs to be rebuilt to support a custom server(there is a PR adding support on their repo)[2]
And it consumes a lot of bettery, it accounts for more than 30% of my phones battery usage, while the wireguard app doesn't even showup in the top 10 apps.

And the nextcloud app sometimes takes for ever to connect to their server, I'm using another pihole as the dns server for the network and I had setup my domain overrides correctly for both ipv6 and ipv4.
The browser loads nextcloud web just fine while the app is still loading

If only there was to setup a standard wireguard server that cab be used wtih the official app with mesh networking.

1- https://github.com/juanfont/headscale

2 - https://github.com/tailscale/tailscale-android/pull/45