this post was submitted on 23 May 2026
191 points (97.0% liked)

Selfhosted

59450 readers
1360 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

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

top 50 comments
sorted by: hot top controversial new old
[–] Seefoo@lemmy.world 6 points 14 hours 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

[–] EncryptKeeper@lemmy.world 8 points 18 hours ago (2 children)

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.

[–] Strit@lemmy.linuxuserspace.show 1 points 2 hours ago

Jellyfin had a third party plugin for OIDC. It was archived recently, but I heard Jellyfin has plans to implement it directly into the software. 🤞

[–] kiol@discuss.online 1 points 13 hours ago (1 children)

What exactly about jellyfin makes this oidc style access more difficult to manage?

[–] EncryptKeeper@lemmy.world 1 points 9 hours ago (1 children)

Jellyfin just doesn’t have it, period. There’s a third party plugin that will kind of tack it on to the Webui, but none of the Jellyfin apps will work with it.

[–] kiol@discuss.online 1 points 8 hours ago

Which plugin?

[–] pnelego@lemmy.world 7 points 20 hours 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.

[–] PeriodicallyPedantic@lemmy.ca 5 points 21 hours ago (2 children)

I'm kinda disappointed with this thread, I'm in a similar position to OP, but all the responses are just like "use a reverse proxy and make your URL hard to guess" and other measures which are not very secure. \

It seems like that's about as good as you can get at the moment, because the mobile apps barf if you try to add in auth in front of the reverse proxy, but a lot of people seem to be providing this advice like it's good enough rather than as good as you can get.

[–] KneeTitts@lemmy.world 1 points 11 hours ago

Im confused as to what people think the security issue is? Do they think someone will brute force their username and password with a billion queries?

[–] frongt@lemmy.zip 5 points 19 hours ago

Well yeah, the "good as you can get" answers are "use a VPN" or "don't".

[–] Jason2357@lemmy.ca 2 points 20 hours ago (1 children)

Put Jellyfin and a reverse proxy in an isolated vlan or DMZ, with no ability to reach into your lan at all and everyone connects in the same way. Its just movies, thats all you lose if it gets hacked. Set up some monitoring too in case it becomes a botnet node so you can destroy it and start over.

[–] KneeTitts@lemmy.world 1 points 10 hours ago (2 children)

Are the majority of you running jellyfin on windows? All of this reverse proxy stuff sounds incredibly paranoid to me and 99% of zero day exploits would be very unlikely to fully compromise up to date linux servers.

[–] Jason2357@lemmy.ca 1 points 7 hours ago

The reverse proxy is just to give it TLS with a let's encrypt cert. If you are running an internet facing web application without TLS, Windows is the least of your concerns.

[–] Andres4NY@social.ridetrans.it 1 points 9 hours ago

@KneeTitts @Jason2357 Recently there are a lot of zero-day kernel exploits (local privilege escalation), so I would make sure "up to date" includes regular reboots into new kernels. As opposed to just relying on something like unattended-upgrades.

For the past few weeks we've been averaging one LPE per week, and it's probably going to continue like that for a bit.

[–] PieMePlenty@lemmy.world 3 points 23 hours ago

My use cases are:

  • Connect from multiple devices on the same home network (with the application)
  • Connect from a phone device on the internet (with the application)
  • Connect from some PC's and devices on the internet (with the application and from web browser)

For home networked devices, I don't care about security that much. I try to lock it down on the router level and by using VLANs for less secure devices. I connect via IP directly (or .local domain).

Jellyfin runs under its own user with read access to a media library.

For devices on the internet, I have jellyfin exposed on a specific url path of my domain - through a reverse proxy all through 443. A bit of security through obscurity here. I'm proxied through cloudflare on the DNS side with very restrictive IP rules.
I think this is enough for the security flaws jellyfin does have. I'd sleep better at night if it had client certificate support, but Its not a big deal imo. If security flaws allowing remote code execution are found, I'll shut it down and allow access through wireguard only and lose access from some devices on the internet where I cant use VPNs. Not a bit deal either.

[–] Evotech@lemmy.world 2 points 22 hours ago (6 children)

Cloudflare. Just make sure to disable caching

load more comments (6 replies)
[–] anon_8675309@lemmy.world 12 points 1 day ago (2 children)

Another way:

Expose using caddy. Use basic auth for the web UI only. This exempts the Jellyfin app clients from basic auth that they don’t support but requires it before anyone even gets to the Jellyfin UI. This obfuscates the fact that your endpoint is even a Jellyfin end point.

load more comments (2 replies)
[–] quips@slrpnk.net 9 points 1 day ago

A reverse proxy is what you are looking for. I recommend Caddy.

You’ll also need a domain, but they can be had for very cheap.

[–] nibbler@discuss.tchncs.de 3 points 1 day ago* (last edited 1 day ago) (2 children)

If client certificates and basic auth is not supported by jellyfin:

  • reverse proxy
  • strong random subdomain
  • wildcard certificate
  • tls1.3 only
  • doh/dot only

1-3 make random scanners unable to find your service, 4&5 even hide it from your ISP. Dot/doh service will still know your subdomain, so be your own dot/doh ! :D

[–] Dultas@lemmy.world 1 points 11 hours ago (1 children)

Throw in port knocking for good measure.

[–] nibbler@discuss.tchncs.de 1 points 11 hours ago (1 children)

You telling me jellyfin Clients can't handle client certs but can port knock?

My proposal is for maxing ux on the client side while being properly hidden.

[–] Dultas@lemmy.world 1 points 8 hours ago (1 children)

No you port knock first to open the ports. Then connect the client.

[–] nibbler@discuss.tchncs.de 1 points 2 hours ago

usually port knocking opens the relevant port to the client IP that is knocking. So it makes a lot of sense to have the knocking done by the requesting client. In many situations knocking from your mobile while behind the same NAT as your jellyfin client will do the trick, but if you have different IPv6 on those devices etc, it won't.

Also: if you assume your DNS lookups are sniffed - so are your port knocks. If you don't, spare the extra work. But then, if you like port knocking - keep knocking, nothing wrong about it :D

[–] Jason2357@lemmy.ca 2 points 21 hours ago (1 children)

I'm no expert, but an unguessible URL path is similar but not visible to DNS. Could do both.

[–] nibbler@discuss.tchncs.de 1 points 13 hours ago

If jellyfin Clients can do URLs, sure

load more comments
view more: next ›