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

  • slazer2au@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 months 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.

  • SteveTech@aussie.zone
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 months 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.

    • purplemonkeymad@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      I recently did exactly this. Only works with the web UI, no apps support it, but working well and those without the cert just get a 400 error. Not sure if non technical tbh, since you will get warnings when adding your root certificates to any device, and that might scare some who don’t understand what it does.

      Also set it up through wireguard, so can punch out of double NAT.

  • pnelego@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    To be totally honest I’m not sure you can harden jellyfin enough for public Internet exposure without also breaking basic functionality of the platform.

    This is why everyone is always pushing so hard for a VPN/Tailnet of some kind. The public internet is a bit to much of a wild west to be exposing arbitrary services to it unless you really know what you’re doing.

  • Seefoo@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    You can do a reverse proxy + authelia (or other auth service). It’s still more risky than a VPN IMO, buts wayyyy better than some of the other options in this thread

  • Nibodhika@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    Secure is relative, you should be aware that jellyfin itself has security issues https://github.com/jellyfin/jellyfin/issues/5415 most of which are harmless, but at least one is fairly serious and allows people to watch your media without authentication, and adding an extra layer of authentication on the proxy would likely cause issues with clients.

    That being said, if you’re okay with those security issues what I would do is have a cheap VPS, connect both machines to tailscale, and have something like Caddy on the VPS to do the forwarding.

    • FreedomAdvocate@lemmy.net.au
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Isn’t it hilarious that the best solution to do remote streaming using the free software that people use because they don’t want to pay for a Plex subscription or one-off cost is to pay for at least one subscription, maybe more?

      It’s almost like the reason Plex charge money is because it’s not free to do.

      • Nibodhika@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        What Plex does is closer to having an embedded tailscale client, you can access Jellyfin remotely with tailscale for free, but OP specifically asked for no VPN.

        That being said, I’m not opposed to Plex charging for that service, even a tailscale like server costs something to maintain. My gripe with Plex is that it purposefully shoots itself in the foot to force you into their paid service, i.e. it actively tries to isolate itself so you can’t access it remotely, which means that it can’t run inside a docker container unless you give it network host access, otherwise it only considers other docker containers locals and doesn’t let you watch your own content from another machine in the same network.

          • Nibodhika@lemmy.world
            link
            fedilink
            English
            arrow-up
            0
            arrow-down
            1
            ·
            3 months ago

            There’s zero need to run anything in docker, it just makes things easier and portable.

            • FreedomAdvocate@lemmy.net.au
              link
              fedilink
              English
              arrow-up
              0
              ·
              3 months ago

              Plex server doesn’t need to be “portable”, and running it in docker definitely doesn’t make it easier.

              There absolutely are programs that make sense to run in docker, but Plex server isn’t one of them.

              • Nibodhika@lemmy.world
                link
                fedilink
                English
                arrow-up
                0
                arrow-down
                1
                ·
                3 months ago

                Plex server doesn’t need to be “portable”

                Strongly disagree, I’ve switched my media server several times in the past decade for a multitude of reasons, having things in docker has allowed me to do this seamlessly.

                Also you’re ignoring all of the other benefits of running in docker, from isolation to automation.

                and running it in docker definitely doesn’t make it easier.

                Plex is the only self-hosted service that is purposefully trying to block you from being ran in docker. All other things are just much easier to run in docker, that’s part of the appeal, reproducible builds eliminate the “it works on my machine” errors.

                There absolutely are programs that make sense to run in docker, but Plex server isn’t one of them.

                Why do you think it doesn’t make sense? Does Jellyfin make sense to you to run in docker? Why are they different?

                Also, Plex only supports Ubuntu and CentOS, none of which I run on my server, so the only OFFICIAL way to run Plex is Docker.

  • 8j1obzlb@piefed.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    I agree with the folks saying reverse proxy of some kind + WAF. That way end users don’t have to deal with the VPN, but your home system is not directly exposed.

    I’ve been doing something similar with SSH local port forwarding and a $5/month VPS. Haven’t come anywhere close to my network quotas, and performance has not been an issue for home use with 2-5 concurrent users most of the time. I forward the local caddy ports to unprivileged ports/user on the VPS, then use the firewall on the VPS to forward that port to 443 and lock down the rest.

  • Encrypt-Keeper@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    The biggest problem with that Jellyfin to this day is that you can’t.

    Seems like every new open source selfhosted app implements OIDC compatibility, but for some reason, I can only assume is technical debt, Jellyfin hasn’t.