this post was submitted on 19 Jan 2025
75 points (96.3% liked)

Selfhosted

41376 readers
844 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 5 days ago

@shimitar's advice is what I'd go with.

Ideally:

  1. Set up a Wireguard subnet. Test it thoroughly, including restarting the server a couple of times.
  2. Close all ports except your Wireguard ports in your server firewall. Do this manually first (not persistent) and test.
  3. Make the firewall changes permanent.

Then, it kinda doesn't matter what else you do on the server, although you can fuss around with locking things down more.

Caveats:

  • you won't be able to use LetsEncrypt with this
  • accessing your services from an Android phone will be futzy, because Android is too stupid to be able to use more than one VPN at a time. Unless you don't use a VPN on your phone, in which case it won't be an issue.
  • you'll only be able to access your server from computers/systems in your Wireguard subnet, so make sure you include multiple devices in the config from which you can ssh

Wireguard is super easy to build VPN networks with, and there are tools (e.g. dsnet) to make it even easier.