I’ve been researching different ways to expose Docker containers to the internet. I have three services I want to expose: Jellyfin, Omnivore (Read-it-later app), and Overseerr.
I’ve come across lots of suggestions, like using Nginx with Cloudflared, but some people mention that streaming media goes against Cloudflared tunnel TOS, and instead recommend Tailscale, or Traefik, or setting up a WireGuard VPN, or using Nginx with a WireGuard VPN.
The amount of conflicting advice has left me confused. So, what would be the best approach to securely expose these containers?
@shimitar’s advice is what I’d go with.
Ideally:
Then, it kinda doesn’t matter what else you do on the server, although you can fuss around with locking things down more.
Caveats:
Wireguard is super easy to build VPN networks with, and there are tools (e.g. dsnet) to make it even easier.