As I start to host more and more services on my home server, my family and friends are interested in using some of the services I host as well. Up to now, all of my services have been internal-only, and my wife and I just use Tailscale to access everything. Getting others set up with tailscale isn’t an issue, but I can only have up to 4 other users before I have to pay to add more, and I have more than 4 people I would like to have access to some of the things I host.
Right now I’m using cloudflare tunnels to make some services available externally. I’m behind CGNAT, so I’m forced to use something like tunnels or similar. I’ve always read that if you are going to open things up externally to use a reverse proxy (which I use internally), but does this still apply with cloudflare tunnels? What else should I be looking at to make sure I have everything secured properly?


That’s what pangolin is. Your users don’t need to use anything special. The VPN is used internally to connect your server and the VPS. It’s not actually public facing. For the enduser it’s the same as if you used cloudflare tunnels.
One word of warning if you choose to go with Cloudflare: Using their tunnels for streaming video is technically against their TOS. It’s not really enforced most of the time, but you might run into problems, if you plan on really high usage.
An alternative service is Netbird. Open Source, based in Germany and as far as I know they don’t have this limitation