Here’s my proposed configuration:

  • OrangePi Zero 3 running DietPi
  • Jellyfin with media libraries on an external hard drive
  • Dynamic DNS from DuckDNS to access server remotely via Finamp

Is there anything I’m missing? Do I need Lets Encrypt or fail2ban?

all 21 comments

sorted by: hot top controversial new old
[–] 17 points 1 year ago*

I would secure it behind a good reverse proxy with letsancrypt https certificates...

Check here https://wiki.gardiol.org/doku.php?id=services%3Ajellyfin the NGINX section.

  • source
  • [–] 16 points 1 year ago (1 child)
  • [–] [S] 5 points 1 year ago (3 children)

    Thank you! What is the most beginner-friendly way to do that?

    I’ve been trying to figure this all out for so long, but it feels like every time I overturn one stone I discover there’s another setting or program I need to configure that I didn’t know about

  • source
  • parent
  • hideshow 6 child comments
  • [–] 9 points 1 year ago* (last edited 1 year ago)

    Install caddy. Check that it works. Get to know what a firewall is. How it works. Forward your ports from router to the machine. (I use cockpit (preinstalled on fedora) to configure my firewall)

    Use a caddyfile with the content

    sub.domain.com {
        reverse_proxy 192.168.178.192:8080
    }
    

    Replace 192.168.178.192 with the ip. And 8080 with the port and your domain obviously.

    That's it.

  • source
  • parent
  • [–] 4 points 1 year ago (1 child)

    Nginx Proxy Manager is the most user friendly way in my opinion :)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 7 points 1 year ago (1 child)

    Nothing beats caddy for simplicity, IMO.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 1 year ago (2 children)

    Well I do not have to touch any configuration files with npm and it has a relatively fancy UI

  • source
  • parent
  • hideshow 4 child comments
  • [–] 13 points 1 year ago (1 child)

    If it's on the Internet, yes.

    Given the state of the Internet, you should keep a healthy level of paranoia. I always recommend exposing as little as possible, and that means using only a VPN and not putting jellyfin itself on the Internet.

  • source
  • hideshow 2 child comments
  • [–] [S] 4 points 1 year ago* (1 child)

    Oh, the healthy paranoia isn’t the issue haha

    I just want to be able to figure out how to configure my system to be able to safely expose a single service for my use away from home. Because I’d like to eventually expand from Jellyfin to Nextcloud and Vaultwarden as well, but I know I’m not there yet

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 year ago (1 child)

    Remote access doesn't mean opening it up to everyone

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 2 points 1 year ago (1 child)

    Correct. I’d like to make it available to myself and any family members or friends I share it with, but not the wider world

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 year ago (1 child)

    Have you checked out Netbird?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 11 points 1 year ago

    Don't expose Jellyfin to the internet

    Instead, add some sort of additional security layer like a Mesh VPN

  • source
  • [–] 9 points 1 year ago (1 child)

    I would only expose a port to the Internet if users other than myself would be needing access to it. Otherwise, I just keep everything inside a tailscale network so I can access remotely. Usually I believe people put a reverse proxy in front of the Jellyfin server and configure your certificates from there. So Jellyfin to proxy is insecure and then proxy to internet is secure. Lets Encrypt is an easy way to do that. And if you are going to expose a port you definitely want fail2ban monitoring that port.

    If using tailscale funnels, you can technically skip the certificate part as that's done for you, but that would take away from the learning experience of setting up a proxy.

  • source
  • hideshow 2 child comments
  • [–] 1 point 1 year ago

    To add to the idea of using tailscale. I've been using tsdproxy for a while now and it's outrageously easy to set up.

    The reason I've gone this route is that I feel like it gives me a bit more control over who is in my network and what they can get to.

    Each service gets a funny name address and I get to share that specific service with other people who also have tailscale. Then if they get on my nerves or something, I can stop sharing that specific service and they can figure it out on their own.

  • source
  • parent
  • [–] 1 point 1 year ago

    I would also recommend a VPN. However, if this doesn't work or you want to share it with friends I would recommend something like a VPS relay: https://codeberg.org/skjalli/jellyfin-vps-setup

  • source