I was asking the same question a year ago and now Im running 30-40 services, all available remotely using VPN.
Everyone is talking about tailscale and how easy it is to setup (never tried it), but I went for pure wireguard VPN and IMO its not complicated at all. I have 3 devices with access to VPN, but I also use reverse proxy NPM (+ pihole as DNS server) just to be able to use custom domain like nextcloud.example
instead of typing IP:PORT
. I dont feel comfortable with opening ports to public, but had 0 issues with wireguard port opened (so far).
Just giving you an example, other people here might have better advices
He is horny 😂