If you want to expose a container based service just for yourself over internet, you can -
-
If you have static IP4 or IPV6 - Setup Wireguard VPN on your homelab/server, and wireguard client on client devices[1].
-
If you are behind NAT or CGNAT - either Cloudflared Tunnel[2] or Tailscale[3].
In either scenarios, you need to setup firewall of your server to allow connection from LAN to port of your docker container/services. By default you should set your firewall to block all incoming request from anywhere except LAN.
I’m personally using Cloudflared Tunnel, but planning to migrate to Tailscale.
[1] https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-ubuntu-20-04
[2] https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
Reverse proxy is not specifically for exposing a containerised service on internet, it also helps to enable SSL for all services via single reverse proxy on LAN.