470
Jellyfin over the internet (startrek.website)

What’s your go too (secure) method for casting over the internet with a Jellyfin server.

I’m wondering what to use and I’m pretty beginner at this

top 50 comments
sorted by: hot top controversial new old

I keep jellyfin up to date in a container and forward tcp/8920 on my router to the container. Easy and plenty secure. People in this thread are wildly overthinking it.

[-] burgerchurgarr@lemmus.org 50 points 4 days ago

I just expose my local machine to the internet, unsecured

Thanks stranger over the internet seems like the best option.

[-] donalonzo@lemmy.world 8 points 4 days ago

This is absolutely unhinged but god damn it, I respect you.

[-] FrostyCaveman@lemm.ee 42 points 5 days ago* (last edited 5 days ago)

I think my approach is probably the most insane one, reading this thread…

So the only thing I expose to the public internet is a homemade reverse proxy application which supports both form based and basic authentication. The only thing anonymous users have access to is the form login page. I’m on top of security updates with its dependencies and thus far I haven’t had any issues, ever. It runs in a docker container, on a VM, on Proxmox. My Jellyfin instance is in k8s.

My mum wanted to watch some stuff on my Jellyfin instance on her Chromecast With Google TV, plugged into her ancient Dumb TV. There is a Jellyfin Android TV app. I couldn’t think of a nice way to run a VPN on Android TV or on any of her (non-existent) network infra.

So instead I forked the Jellyfin Android TV app codebase. I found all the places where the API calls are made to the backend (there are multiple). I slapped in basic auth credentials. Recompiled the app. Deployed it to her Chromecast via developer mode.

Solid af so far. I haven’t updated Jellyfin since then (6 months), but when I need to, I’ll update the fork and redeploy it on her Chromecast.

[-] EpicFailGuy@lemmy.world 17 points 5 days ago

What an absolute gigachad XD

[-] Couldbealeotard@lemmy.world 12 points 5 days ago
[-] FrostyCaveman@lemm.ee 12 points 5 days ago

VERY hands on, wouldn’t recommend it haha.

But that’s the beauty of open source. You CAN do it

Nginx in front of it, open ports for https (and ssh), nothing more. Let's encrypt certificate and you're good to go.

[-] Novi@sh.itjust.works 72 points 5 days ago

I would not publicly expose ssh. Your home IP will get scanned all the time and external machines will try to connect to your ssh port.

[-] 30p87@feddit.org 53 points 5 days ago

fail2ban with endlessh and abuseipdb as actions

Anything that's not specifically my username or git gets instantly blocked. Same with correct users but trying to use passwords or failing authentication in any way.

[-] mosiacmango@lemm.ee 31 points 5 days ago* (last edited 5 days ago)

Youve minimized login risk, but not any 0 days or newly discovered vulnerabilites in your ssh server software. Its still best to not directly expose any ports you dont need to regularly interact with to the internet.

Also, Look into crowdsec as a fail2ban replacement. Its uses automatically crowdsourced info to pre block IPs. A bit more proactive compared to abuseipdb manual reporting.

load more comments (1 replies)
[-] drkt@scribe.disroot.org 14 points 5 days ago

They can try all they like, man. They're not gonna guess a username, key and password.

[-] Ptsf@lemmy.world 27 points 5 days ago

Doesn't take that to leverage an unknown vulnerability in ssh like:

https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server

That's why it's common best practice to never expose ssh to raw internet if you can help it; but yes it's not the most risky thing ever either.

[-] drkt@scribe.disroot.org 35 points 5 days ago

If you're going to open something, SSH is far, far more battle-tested than much other software, even popular software. Pragmatically, If someone is sitting on a 0-day for SSH, do you genuinely think they're gonna waste that on you and me? Either they're gonna sell it to cash out as fast as possible, or they'll sit on it while plotting an attack against someone who has real money. It is an unhealthy level of paranoia to suggest that SSH is not secure, or that it's less secure than the hundreds of other solutions to this problem.

Here is my IP address, make me eat my words.
2a05:f6c7:8321::164 | 89.160.150.164

[-] teawrecks@sopuli.xyz 18 points 5 days ago

Are you giving random strangers legal permission to pentest you? That's bold.

[-] pm_me_your_puppies@infosec.pub 13 points 5 days ago

You got balls to post you public addresses like that... I mean I agree with you wholeheartedly and I also have SSH port forwarded on my firewall, but posting your public IP is next-level confidence.

Respect.

[-] crater2150@feddit.org 13 points 5 days ago

Well, having a domain is basically documenting your IP publicly. It's not that risky.

load more comments (1 replies)
load more comments (2 replies)
load more comments (5 replies)
load more comments (9 replies)
load more comments (1 replies)
load more comments (7 replies)
load more comments (19 replies)
[-] Evil_Shrubbery@lemm.ee 61 points 5 days ago
[-] WhyJiffie@sh.itjust.works 11 points 5 days ago* (last edited 5 days ago)

and a local reverse proxy that can route through wireguard when you want to watch on a smart tv.

its not as complicated as it sounds, it's just a wireguard client, and a reverse proxy like on the main server.

it can even be your laptop, without hdmi cables

load more comments (2 replies)
load more comments (4 replies)
[-] fmstrat@lemmy.nowsci.com 26 points 5 days ago

I used to do all the things mentioned here. Now, I just use Wireguard. If a family member wants to use a service, they need Wireguard. If they don't want to install it, they dont get the service.

load more comments (3 replies)
[-] MrTolkinghoen@lemmy.zip 16 points 4 days ago

Tailscale with self hosted headscale

load more comments (2 replies)
[-] smiletolerantly@awful.systems 33 points 5 days ago

I host it publicly accessible behind a proper firewall and reverse proxy setup.

If you are only ever using Jellyfin from your own, wireguard configured phone, then that's great; but there's nothing wrong with hosting Jellyfin publicly.

I think one of these days I need to make a "myth-busting" post about this topic.

[-] greywolf0x1@lemmy.ml 11 points 5 days ago

Please do so, it'll be very useful

[-] Player2@lemm.ee 6 points 3 days ago

For now just Tailscale but I'm working on setting up a reverse proxy and SSO through Authentik

load more comments (3 replies)
[-] EncryptKeeper@lemmy.world 14 points 4 days ago* (last edited 4 days ago)

If you’re a beginner and you’re looking for the most secure way with least amount of effort, just VPN into your home network using something like WireGuard, or use an off the shelf mesh vpn like Tailscale to connect directly to your JF server. You can give access to your VPN to other people to use. Tailscale would be the easiest to do this with, but if you want to go full self-hosted you can do it with WireGuard if you’re willing to put in a little extra leg work.

What I’ve done in the past is run a reverse proxy on a cloud VPS and tunnel that to the JF server. The cloud VPS acts as a reverse proxy and a web application firewall which blocks common exploits, failed connection attempts etc. you can take it one step beyond that if you want people to authenticate BEFORE they reach your server by using an oauth provider and whatever forward Auth your reverse proxy software supports.

[-] Scavenger8294@feddit.org 21 points 5 days ago

for me the easiest option was to set up tailscale on the server or network where jellyfin runs and then on the client/router where you want to watch the stream.

[-] FoD@startrek.website 10 points 5 days ago

This is also what I do, however, each user creates their own tailnet, not an account on mine and I share the server to them.

This way I keep my 3 free users for me, and other people still get to see jellyfin.

Tailscale and jellyfin in docker, add server to tailnet and share it out to your users emails. They have to install tailscale client in a device, login, then connect to your jellyfin. My users use Walmart Onn $30 streaming boxes. They work great.

I struggled for a few weeks to get it all working, there's a million people saying "I use this" but never "this is how to do it". YouTube is useless because it's filled with "jellyfin vs Plex SHOWDOWN DEATH FIGHT DE GOOGLE UR TOILET".

load more comments (3 replies)
load more comments (1 replies)
[-] JRaccoon@discuss.tchncs.de 31 points 5 days ago* (last edited 5 days ago)

I see everyone in this thread recommending a VPN or reverse proxy for accessing Jellyfin from outside the LAN. While I generally agree, I don't see a realistic risk in exposing Jellyfin directly to the internet. ~~It supports HTTPS and certificates nowadays, so there’s no need for outside SSL termination anymore.~~ (See Edit 2)

In my setup, which I've been running for some time, I've port-forwarded only Jellyfin's HTTPS port to eliminate the possibility of someone ending up on pure HTTP and sending credentials unencrypted. I've also changed the Jellyfin's default port to a non-standard one to avoid basic port-scanning bots spamming login attempts. I fully understand that this falls into the security through obscurity category, but no harm in it either.

Anyone wanna yell at me for being an idiot and doing everything wrong? I'm genuinely curious, as the sentiment online seems to be that at least a reverse proxy is almost mandatory for this kind of setup, and I'm not entirely sure why.

Edit: Thank you everyone for your responses. While I don't agree with everything, the new insight is appreciated.

Edit 2: I've been informed that infact the support for HTTPS will be removed in a future version. From v10.11 release notes:

Deprecation Notice: Jellyfin’s internal handling of TLS/SSL certificates and configuration in the web server will be removed in a future version. No changes to the current system have been made in 10.11, however future versions will remove the current system and instead will provide advanced instructions to configure the Kestrel webserver directly for this relatively niche usecase. We strongly advise anyone using the current TLS options to use a Reverse Proxy for TLS termination instead if at all possible, as this provides a number of benefits

[-] makeitwonderful@lemmy.sdf.org 18 points 5 days ago

It feels like everything is a tradeoff and I think a setup like this reduces the complexity for people you share with.

If you added fail2ban along with alert email/notifications you could have a chance to react if you were ever targeted for a brute force attempt. Jellyfin docs talk about setting this up for anyone interested.

Blocking IP segments based on geography of countries you don't expect connections from adds the cost of a VPN for malicious actors in those areas.

Giving Jellyfin its own VLAN on your network could help limit exposure to your other services and devices if you experience a 0day or are otherwise compromised.

[-] domi@lemmy.secnd.me 16 points 5 days ago

Anyone wanna yell at me for being an idiot and doing everything wrong?

Not yell, but: Jellyfin is dropping HTTPS support with a future update so you might want to read up on reverse proxies before then.

Additionally, you might want to check if Shodan has your Jellyfin instance listed: https://www.shodan.io/

load more comments (3 replies)
[-] frezik 16 points 5 days ago

Nah, setting non-standard ports is sound advice in security circles.

People misunderstand the "no security through obscurity" phrase. If you build security as a chain, where the chain is only as good as the weakest link, then it's bad. But if you build security in layers, like a castle, then it can only help. It's OK for a layer to be weak when there are other layers behind it.

Even better, non-standard ports will make 99% of threats go away. They automate scans that are just looking for anything they can break. If they don't see the open ports, they move on. Won't stop a determined attacker, of course, but that's what other layers are for.

As long as there's real security otherwise (TLS, good passwords, etc), it's fine.

If anyone says "that's a false sense of security", ignore them. They've replaced thinking with a cliche.

load more comments (1 replies)
[-] Ptsf@lemmy.world 12 points 5 days ago

It's difficult to say exactly what all a reverse proxy adds to the security conversation for a handful of reasons, so I won't touch on that, but the realistic risk of exposing your jellyfin instance to the internet is about the same as handing your jellyfin api over to every stranger globally without giving them your user account or password and letting them do whatever they'd like for as long as they'd like. This means any undiscovered or unintentional vulnerability in the api implementation could easily allow for security bypass or full rce (remote code execution, real examples of this can be found by looking at the history of WordPress), but by siloing it behind a vpn you're far far far more secure because the internet at large cannot access the apis even if there is a known vulnerability. I'm not saying exposing jellyfin to the raw web is so risky it shouldn't be done, but don't buy into the misconception that it's even nearly as secure as running a vpn. They're entirely different classes of security posture and it should be acknowledged that if you don't have actual use for internet level access to jellyfin (external users, etc, etc) a vpn like tailscale or zero tier is 100% best practice.

load more comments (9 replies)
[-] PieMePlenty@lemmy.world 13 points 5 days ago

I access it through a reverse proxy (nginx). I guess the only weak point is if someone finds out the domain for it and starts spamming the login screen. But I've restricted access to the domain for most of the world anyway. Wireguard would probably be more secure but its not always possible if like on vacation and want to use it on the TV there..

load more comments (4 replies)
[-] Netrunner@programming.dev 4 points 4 days ago

Sad that mTLS support is non existent because it solves this problem.

load more comments (1 replies)
[-] recall519@lemm.ee 7 points 4 days ago

Cloudflare. No public exposure to the internet.

[-] Batman@lemmy.world 9 points 4 days ago

Are we not worried about their terms of service? I've been using pangolin

[-] recall519@lemm.ee 6 points 4 days ago

I run multiple enterprise companies through it who are transferring significantly more sensitive data than me. I'm not as strict as some people here, so no, I don't really care. I think it's the best service, especially for free, so until things change, that's what I'm using.

[-] kalpol@lemmy.ca 5 points 4 days ago

We are, Batman, we are.

I VPN to my network for it.

load more comments (1 replies)
[-] xnx@slrpnk.net 16 points 5 days ago
[-] snowflocke@feddit.org 9 points 5 days ago

We have it open to the public, behind a load balancer URL filtering incomming connection, https proxied through cloudflare with a country filter in place

[-] ohshit604@sh.itjust.works 6 points 4 days ago* (last edited 4 days ago)

“Technically” my jellyfin is exposed to the internet however, I have Fail2Ban setup blocking every public IP and only whitelisting IP’s that I’ve verified.

I use GeoBlock for the services I want exposed to the internet however, I should also setup Authelia or something along those lines for further verification.

Reverse proxy is Traefik.

[-] r00ty@kbin.life 14 points 5 days ago

Wireguard vpn into my home router. Works on android so fire sticks etc can run the client.

load more comments (1 replies)
[-] hietsu@sopuli.xyz 14 points 5 days ago

Use a reverse proxy (caddy or nginx proxy manager) with a subdomain, like myservice.mydomain.com (maybe even configure a subdir too, so …domain.com/guessthis/). Don’t put anything on the main domain / root dir / the IP address.

If you’re still unsure setup Knockd to whitelist only IP addresses that touch certain one or two random ports first.

So security through obscurity :) But good luck for the bots to figure all that out.

VPN is of course the actually secure option, I’d vote for Tailscale.

load more comments (5 replies)
load more comments
view more: next ›
this post was submitted on 26 Jun 2025
470 points (100.0% liked)

Selfhosted

46672 readers
1089 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.

Resources:

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

Questions? DM the mods!

founded 2 years ago
MODERATORS