Assuming the user will not be connecting over vpn, but is both remote and non-technical, how would you expose Jellyfin to them securely?

  • Depends on what you mean by “secure.” My personal setup is Jellyfin LXC on proxmox --> Wireguard to VPS -> Nginx reverse proxy on VPS.

    This setup relies somewhat on Jellyfin’s auth, but I’m comfortable with that risk. The LXC is blocked from sending local traffic on my network by firewall rules. Yes, someone could exploit a vulnerability in Jellyfin (though looking through the CVEs I’m not overly worried about that), then escape the LXC and fuck with my server. But that’s a lot of work for no profit.

    For more protection (in sense of reducing traffic that even interacts with your server), I’d recommend getting a wildcard cert for the domain so that the actual subdomain jellyfin is on is undisclosed to anyone not using your service.

    Security isn’t about making everything impregnable, it’s about making attacks more trouble than they’re worth. Otherwise, we’d all live in fortified bunkers surrounded by landmines. 🙃

  • katy ✨@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 hour ago

    if theyre close, add them to your tailscale, if not and you have a web serve, use a reverse proxy.

    for tailscale, you’d probably have to walk them through setting it up but then its one and done

    • WeirdGoesPro@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      27 minutes ago

      That’s basically the VPN solution but with a little more flexibility.

      If you want to actually expose the service, you can use Tailscale to connect it to a VPS and then expose that port to the web with Nginx, but if you do that, be prepared on the security front because…you know…open internet be full of hazards.

  • Konraddo@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 hour ago

    Ask them to use the Jellyfin web, and you expose it to the public via Netbird / Pangolin locked behind SSO

  • skeevy_scallops@feddit.online
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 hours ago

    call me crazy but I just use a couldflare tunnel since my domain is already provided through them. They make it really easy to add sub-domains attached to specific ports on the local machine and automatically adds the proper DNS entries. Additionally they have a ton of domain security/anti-bot measures you can set up.

  • Jul (they/she)@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 hours ago

    Reverse proxy with fail2ban or crowdsec. It’s possible to set up things like Pangolin which ultimately use a VPN between external and internal access points but not at the client, though it takes more setup if you want to use apps over pangolin instead of just the browser.

  • INeedMana@piefed.zip
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 hours ago

    If they could be using web UI (I’m not sure how a client would work with auth like that) then it kind of depends on how much hassle they can live with and how secure you want to be

    Simplest would be to use https://doc.traefik.io/traefik/reference/routing-configuration/http/middlewares/basicauth/
    You set up username and password and share those with the user. But it can be brute-forced

    Something more secure but also a bit more demanding would be some kind of email otp
    https://docs.goauthentik.io/add-secure-apps/flows-stages/stages/authenticator_email/
    Set up authentik to send time-limited link to their email that well let them through. But they would have to authenticate every time they access

  • slazer2au@lemmy.world
    link
    fedilink
    English
    arrow-up
    28
    ·
    5 hours ago

    At the very minimum stick a reverse proxy in front like caddy, nginx, or Traefik. Then have some middleware like crowdsec to inspect what’s going on. Then whitelist the IP or the country IP block.

    There is much more but those would be the bare minimum.

    • NarrativeBear@lemmy.world
      link
      fedilink
      English
      arrow-up
      10
      ·
      4 hours ago

      I too would like to know more. Jellyfin has been something that I am still heditating to expose online without a VPN.

      I have Plex behind a reverse proxy (HAproxy) with Crowdsec and firewall rules all behind Cloudflare. My firewall rules in HAproxy block access a few different ways, like if request are higher then 60 requests a second, or if there is strange path traversal. Used the following guide as a start.

      https://www.archy.net/building-a-native-fail2ban-with-haproxy-stick-tables/

    • BakedCatboy@lemmy.ml
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 hours ago

      How do you get apps through something like that? Do you have to open your browser and hit the URL periodically to handle auth there and it just remembers your IP?

      • halcyoncmdr@piefed.social
        link
        fedilink
        English
        arrow-up
        1
        ·
        54 minutes ago

        You can set pangolin to allow access to an entire resource or just certain paths without the front auth, instead relying on the built in auth.

        Your random plex/emby/jellyfin server isn’t going to be a huge target and the built in auth is good enough for the limited access your media system should have.

  • SteveTech@aussie.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    3 hours ago

    Possibly mTLS, which you’d configure in your reverse proxy. You could email them the certificate and instructions on installing it. I believe for Chromium browsers on Windows you basically just double click the cert and click through the wizard. Firefox I know has a thing in the settings for importing the cert. Android you just tap on the cert and make sure it opens with ‘Certificate Installer’ if it gives you the option.

  • AllYourSmurf@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    5 hours ago

    I agree with reverse proxy + middleware. I’d also suggest something like Jellyswarm as the front end. That way I can connect to other friends’ servers too.

  • Brickfrog@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 hours ago

    Adding onto the other comments, if you have admin access to your network router/firewall you can configure the incoming port forward itself to only allow specific IP addresses while dropping traffic from any other internet WAN IPs. It’s a bit like using the Jellyfin whitelist/blacklist but doing it at the network level. This drops all unwanted internet traffic to that port at the firewall before ever reaching the Jellyfin software. Downside is having to occasionally update the firewall whenever there are IP address changes.

    This is probably only feasible if you only have some specific Jellyfin clients in mind to accept connections from, not any random person from any random WAN IP address.

  • DecronymB
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    19 minutes ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    DNS Domain Name Service/System
    HTTP Hypertext Transfer Protocol, the Web
    IP Internet Protocol
    LXC Linux Containers
    NAS Network-Attached Storage
    Plex Brand of media server package
    SSO Single Sign-On
    VPN Virtual Private Network
    VPS Virtual Private Server (opposed to shared hosting)
    nginx Popular HTTP server

    9 acronyms in this thread; the most compressed thread commented on today has 13 acronyms.

    [Thread #311 for this comm, first seen 23rd May 2026, 22:30] [FAQ] [Full list] [Contact] [Source code]

  • theunknownmuncher@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    4 hours ago

    Meh. If someone hacks my server and watches TV then idc, have at it. They earned it

    EDIT: the downvotes are warranted but they change nothing

    • N.E.P.T.R@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 hours ago

      Remote code execution is a concern. Your server and your network as a whole (including other VLANs) are susceptible to attack if Jellyfin is compromised. If Jellyfin is running on the host, it would be trivial to hack your server (and anything else running/connected to it). If Jellyfin is in a Docker/Podman containers, it doesnt prevent attacks against the host (sandbox escape, kernel privilege escalation, etc), or against your network over some ports. Even if the server is on it’s own VLAN, a vulnerability or weakness in your router could still lead to a compromise, meaning that any devices that is in any way connected to your router (including personal devices) could be attacked.

      There is a lot of depth to this topic of course. And at some point you just calculate your risks and weigh your options. There is no such thing as perfect security of course.

    • irmadlad@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 hours ago

      Didn’t down vote, and I get what you’re saying to a certain extent. I’m not touting my server as hack-proof in the least, but it would take some work. My concern wouldn’t be someone hacking in and listening to my personal music collection I’ve been working on for decades…it goes all the way back to 1937.

      I would be more concerned that my compromised server was used as a zombie attack on some other server. The first VPS server got ransacked and used over-nite to (unsuccessfully) DDoS another business site.I got a ton of nasty grams for that boner. I didn’t loose anything but time.

      Bitcoin miners are easy to spot. I’ve never really understood why someone would hack into a small server and deploy a nefarious miner. On a huge corporate server farm, sure. But not some small selfhost VPS somebody found on lowendbox.

      • frongt@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 hour ago

        Because they’re not mining on just one, they’re mining on thousands.

      • ampersandrew@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 hours ago

        I’m learning a lot of this as I go and have not exposed any services to the internet yet, but would VLANs not contain the damage to a limited portion of the network? Because that’s the plan I’m working toward. Not just for Jellyfin but a handful of other services.

        • LadyMeow@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 hours ago

          That… might work. Do you have a different physical server for each service though?

          The issue is once someone is in, then they can try to jailbreak and move laterally to get to other things. Other devices, into the file system.

          Jellyfin might not be your concern, but are there other files on that server? Or services? Secrets passwords etc? If anything else is on that vlan, what security flaws might be there that an attacker could use?

          • ampersandrew@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 hours ago

            There is no personal information on anything in that proposed VLAN currently, and in the future, the most personal stuff it will include is a chat program to replace Discord. In all, I’m assuming I can run the reverse proxy and most services (not even a dozen) on a mini PC, and then somewhere between 1-4 on a NAS. Two devices total on this VLAN, unless I learn of something that would change this plan.