• 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: October 16th, 2023

help-circle
  • I would not directly expose Jellyfin to the Internet (including reverse proxy) because of security issues they’ve had. And no, a reverse proxy (like Caddy) doesn’t usually add much insecurity or security^.

    The thing I currently do is use forward_auth w/ Authelia (from anywhere, you could also use basic_auth though the UX sucks) but bypass it for the app in private IP ranges (aka at home or in VPN):

    jellyfin.example {
            @notapp {
                    not {
                            header User-Agent *Jellyfin*
                            client_ip private_ranges
                    }
            }
    
            forward_auth @notapp localhost:8080 {
                    uri /api/verify?rd=https://authelia.example/
            }
            reverse_proxy 192.168.1.44:8080
    }
    

    Apps get to continue working, and I can access it from my phone without a VPN setup (because it’s annoying and I only look at metadata on my phone anyway).

    You can also do a simpler config (which I used to do) where you just give an HTTP Unauthorized for anything outside of private ranges (this lets you do the HTTP challenge for a certificate while still not exposing Jellyfin to the general internet).

    ^You can configure more security by doing authentication in the reverse proxy so that anyone trying to attack services behind it must first authenticate with the reverse proxy, but this is not the default. Security-wise this ends up similar to forcing all access through a VPN first, if a little harder to setup.