Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

agnos.is Forums

  1. Home
  2. Selfhosted
  3. How to secure Jellyfin hosted over the internet?

How to secure Jellyfin hosted over the internet?

Scheduled Pinned Locked Moved Selfhosted
selfhosted
138 Posts 62 Posters 1.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • lambda@programming.devL [email protected]

    I use Tailscale right now. Which, in fairness, I didn't state in the post. However, I was hoping to share it more similarly to how I used to with Plex. But, it would appear, I would have to share it through Tailscale only at this point.

    R This user is from outside of this forum
    R This user is from outside of this forum
    [email protected]
    wrote on last edited by
    #115

    Right now none of the native clients support SSO. It is a frequently requested feature but, unfortunately, it doesn't look like it will be implemented any time soon. As with many OSS projects it is probably a case of "you want it, you build it" - but nobody has actually stepped up.

    1 Reply Last reply
    0
    • B [email protected]

      I am using tailscale but I went a little further to let my family log in with their Gmail( they will not make any account for 1 million dollars)

      Tailscale funneled
      Jellyfin
      Keycloak (adminless)

      Private Tailscale
      Keycloak admin
      Postgres dB

      I hook up jellyfin to Keycloak (adminless) using the sso plugin. And hook Keycloak up (using the private instance) to use Google as an identity provider with a private app.

      lambda@programming.devL This user is from outside of this forum
      lambda@programming.devL This user is from outside of this forum
      [email protected]
      wrote on last edited by
      #116

      SSO plugin is good to know about. Does that address any of the issues with security that someone was previously talking about?

      B 1 Reply Last reply
      0
      • spacecadet@feddit.nlS [email protected]

        This is how I found out Google harvests the URLs I visit through Chrome.

        Got google bots trying to crawl deep links into a domain that I hadn't published anywhere.

        Z This user is from outside of this forum
        Z This user is from outside of this forum
        [email protected]
        wrote on last edited by
        #117

        This is true, and is why I annoyingly have to keep robots.txt on my unpublished domains. Google does honor them for the most part, for now.

        spacecadet@feddit.nlS 1 Reply Last reply
        0
        • lambda@programming.devL [email protected]

          I already host multiple services via caddy as my reverse proxy. Jellyfin, I am worried about authentication. How do you secure it?

          G This user is from outside of this forum
          G This user is from outside of this forum
          [email protected]
          wrote on last edited by
          #118

          setup a WAF appliance and forward traffic through it to your current installation.

          1 Reply Last reply
          0
          • B [email protected]

            Right, but I have wireguard on my opnsense. So when I want to reach https://jellyfin.example.com/ , if I am at home, it goes phone -> DNS -> proxy -> jellyfin (on the same network). If I am connected to the VPN, it goes from phone -> internet -> opnsense public ip -> wireguard subnet -> local subnet -> DNS -> proxy -> jellyfin. I see some unneeded extra steps here... Am I wrong?

            dan@upvote.auD This user is from outside of this forum
            dan@upvote.auD This user is from outside of this forum
            [email protected]
            wrote on last edited by
            #119

            Oh yeah, there'll be some overhead if you're running Wireguard on a router. Hitting your router's public IP won't go out to the internet though - the router will recognize that it's its IP.

            It's common to run Wireguard on every computer/phone/tablet/etc rather than just on the router, since this takes advantage of its peer-to-peer nature. Tailscale makes it a lot easier to configure it this way though - it's a bit of work for vanilla Wireguard.

            B 1 Reply Last reply
            0
            • Z [email protected]

              This is true, and is why I annoyingly have to keep robots.txt on my unpublished domains. Google does honor them for the most part, for now.

              spacecadet@feddit.nlS This user is from outside of this forum
              spacecadet@feddit.nlS This user is from outside of this forum
              [email protected]
              wrote on last edited by
              #120

              That reminds me ... another annoying thing Google did was list my private jellyfin instance as a "deceptive site"

              A common issue it seems.

              N Z 2 Replies Last reply
              0
              • S [email protected]

                https://codeberg.org/skjalli/jellyfin-vps-setup here you go, took me longer than expected and I hope it's helpful, might contain a few errors since I had to remove some settings but I guess this should work.

                S This user is from outside of this forum
                S This user is from outside of this forum
                [email protected]
                wrote on last edited by
                #121

                This is honestly awesome! I was thinking about a similar setup for a long time but wasn’t sure how to do this exactly, this seems exactly like the setup I was looking for. Thank you!

                S 1 Reply Last reply
                0
                • lambda@programming.devL [email protected]

                  SSO plugin is good to know about. Does that address any of the issues with security that someone was previously talking about?

                  B This user is from outside of this forum
                  B This user is from outside of this forum
                  [email protected]
                  wrote on last edited by
                  #122

                  I'd say it's nearly as secure as basic authentication. If you restrict deletion to admin users and use role (or group) based auth to restrict that jellyfin admin ability to people with strong passwords in keycloak, i think you are good. Still the only risk is people could delete your media if an adminusers gmail is hacked.

                  appoxo@lemmy.dbzer0.comA 1 Reply Last reply
                  0
                  • gagootron@feddit.orgG [email protected]

                    I use good ol' obscurity. My reverse proxy requires that the correct subdomain is used to access any service that I host and my domain has a wildcard entry. So if you access asdf.example.com you get an error, the same for directly accessing my ip, but going to jellyfin.example.com works.
                    And since i don't post my valid urls anywhere no web-scraper can find them.
                    This filters out 99% of bots and the rest are handled using authelia and crowdsec

                    O This user is from outside of this forum
                    O This user is from outside of this forum
                    [email protected]
                    wrote on last edited by
                    #123

                    That’s not how web scrappers work lol. No such thing as obscurity except for humans

                    gagootron@feddit.orgG 1 Reply Last reply
                    1
                    • S [email protected]

                      This is honestly awesome! I was thinking about a similar setup for a long time but wasn’t sure how to do this exactly, this seems exactly like the setup I was looking for. Thank you!

                      S This user is from outside of this forum
                      S This user is from outside of this forum
                      [email protected]
                      wrote on last edited by
                      #124

                      You're welcome, happy that I can help. I also just updated it a bit. In case you find any issues or have questions please let me know. It was mostly trial and error until it ran..

                      1 Reply Last reply
                      0
                      • dan@upvote.auD [email protected]

                        Oh yeah, there'll be some overhead if you're running Wireguard on a router. Hitting your router's public IP won't go out to the internet though - the router will recognize that it's its IP.

                        It's common to run Wireguard on every computer/phone/tablet/etc rather than just on the router, since this takes advantage of its peer-to-peer nature. Tailscale makes it a lot easier to configure it this way though - it's a bit of work for vanilla Wireguard.

                        B This user is from outside of this forum
                        B This user is from outside of this forum
                        [email protected]
                        wrote on last edited by
                        #125

                        I don't think I've ever encountered what you say... I use WG it to access a network, not a device. I have a few dozen devices, physical and virtual, why should I set up wg on all of them? Tailscale, maybe, it's a different story, but I prefer to "self host" and not rely on a 3rd party provider. Wireguard was relatively easy to set up too, a few years ago... and in the meantime, if I need to add a new client, it's a two minute job.

                        1 Reply Last reply
                        0
                        • O [email protected]

                          That’s not how web scrappers work lol. No such thing as obscurity except for humans

                          gagootron@feddit.orgG This user is from outside of this forum
                          gagootron@feddit.orgG This user is from outside of this forum
                          [email protected]
                          wrote on last edited by
                          #126

                          It seems to that it works. I don't get any web-scrapers hitting anything but my main domain. I can't find any of my subdomains on google.

                          Please tell me how you believe that it works. Maybe i overlooked something...

                          O 1 Reply Last reply
                          0
                          • lambda@programming.devL [email protected]

                            I already host multiple services via caddy as my reverse proxy. Jellyfin, I am worried about authentication. How do you secure it?

                            H This user is from outside of this forum
                            H This user is from outside of this forum
                            [email protected]
                            wrote on last edited by
                            #127

                            Wireguard (or tailscale) would be best here.

                            1 Reply Last reply
                            0
                            • B [email protected]

                              I'd say it's nearly as secure as basic authentication. If you restrict deletion to admin users and use role (or group) based auth to restrict that jellyfin admin ability to people with strong passwords in keycloak, i think you are good. Still the only risk is people could delete your media if an adminusers gmail is hacked.

                              appoxo@lemmy.dbzer0.comA This user is from outside of this forum
                              appoxo@lemmy.dbzer0.comA This user is from outside of this forum
                              [email protected]
                              wrote on last edited by
                              #128

                              I set mine up with Authelia 2FA and restricted media deletion to one user: The administrator.
                              All others arent allowed to delete. Not even me.

                              1 Reply Last reply
                              0
                              • spacecadet@feddit.nlS [email protected]

                                That reminds me ... another annoying thing Google did was list my private jellyfin instance as a "deceptive site"

                                A common issue it seems.

                                N This user is from outside of this forum
                                N This user is from outside of this forum
                                [email protected]
                                wrote on last edited by
                                #129

                                They did that with most of my subdomains

                                1 Reply Last reply
                                0
                                • gagootron@feddit.orgG [email protected]

                                  I use good ol' obscurity. My reverse proxy requires that the correct subdomain is used to access any service that I host and my domain has a wildcard entry. So if you access asdf.example.com you get an error, the same for directly accessing my ip, but going to jellyfin.example.com works.
                                  And since i don't post my valid urls anywhere no web-scraper can find them.
                                  This filters out 99% of bots and the rest are handled using authelia and crowdsec

                                  N This user is from outside of this forum
                                  N This user is from outside of this forum
                                  [email protected]
                                  wrote on last edited by
                                  #130

                                  If you're using jellyfin as the url, that's an easily guessable name, however if you use random words not related to what's being hosted chances are less, e.g. salmon.example.com . Also ideally your server should reply with a 200 to * subdomains so scrappers can't tell valid from invalid domains. Also also, ideally it also sends some random data on each of those so they don't look exactly the same. But that's approaching paranoid levels of security.

                                  1 Reply Last reply
                                  0
                                  • spacecadet@feddit.nlS [email protected]

                                    That reminds me ... another annoying thing Google did was list my private jellyfin instance as a "deceptive site"

                                    A common issue it seems.

                                    Z This user is from outside of this forum
                                    Z This user is from outside of this forum
                                    [email protected]
                                    wrote on last edited by
                                    #131

                                    Unsurprising, but still shitty. Par for the course for the company these days.

                                    1 Reply Last reply
                                    0
                                    • gagootron@feddit.orgG [email protected]

                                      It seems to that it works. I don't get any web-scrapers hitting anything but my main domain. I can't find any of my subdomains on google.

                                      Please tell me how you believe that it works. Maybe i overlooked something...

                                      O This user is from outside of this forum
                                      O This user is from outside of this forum
                                      [email protected]
                                      wrote on last edited by
                                      #132

                                      My understanding is that scrappers check every domain and subdomain. You’re making it harder but not impossible. Everything gets scrapped

                                      It would be better if you also did IP whitelisting, rate limiting to prevent bots, bot detection via cloudflare or something similar, etc.

                                      1 Reply Last reply
                                      0
                                      • lambda@programming.devL [email protected]

                                        I already host multiple services via caddy as my reverse proxy. Jellyfin, I am worried about authentication. How do you secure it?

                                        ? Offline
                                        ? Offline
                                        Guest
                                        wrote on last edited by
                                        #133

                                        So i’ve been trying to set this up this exact thing for the past few weeks - tried all manner of different Nginx/Tailscale/VPS/Traefik/Wireguard/Authelia combos, but to no avail

                                        I was lost in the maze

                                        However, I realised that it was literally as simple as setting up a CloudFlare Tunnel on my particular local network I wanted exposed (in my case, the Docker network that runs the JellyFin container) and then linking that domain/ip:port within CloudFlare’s Zero Trust dashboard

                                        And you can even set up what looks like pretty robust authentication (2FA, limited to only certain emails, etc)

                                        Not sure what your use case is, but as mine is shared with only me and my partner, this worked like a charm

                                        C V 2 Replies Last reply
                                        0
                                        • ? Guest

                                          So i’ve been trying to set this up this exact thing for the past few weeks - tried all manner of different Nginx/Tailscale/VPS/Traefik/Wireguard/Authelia combos, but to no avail

                                          I was lost in the maze

                                          However, I realised that it was literally as simple as setting up a CloudFlare Tunnel on my particular local network I wanted exposed (in my case, the Docker network that runs the JellyFin container) and then linking that domain/ip:port within CloudFlare’s Zero Trust dashboard

                                          And you can even set up what looks like pretty robust authentication (2FA, limited to only certain emails, etc)

                                          Not sure what your use case is, but as mine is shared with only me and my partner, this worked like a charm

                                          C This user is from outside of this forum
                                          C This user is from outside of this forum
                                          [email protected]
                                          wrote on last edited by
                                          #134

                                          I'm pretty sure that using Jellyfin over Cloudflare tunnels is against their TOS, just FYI. I'm trying to figure out an alternative myself right now because of that.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups