this post was submitted on 03 Apr 2025
37 points (97.4% liked)

Selfhosted

45411 readers
522 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
 

I have several services on my home server, most of which I access using Tailscale, and it works great. I had a couple services on Cloudflare tunnels in order to access them from devices that I can't put Tailscale on.

Plex is going to start charging for remote access. So I figured now would be the time to migrate to Jellyfin. But using Jellyfin on Cloudflare tunnels is against their TOS. I have a Roku TV at a remote location that I use to watch Plex. I won't be able to do that anymore. And I can't put Tailscale on it to serve Jellyfin that way.

I was going to set up Nginx Proxy Manager to use my domain name for Jellyfin so I didn't have to use Cloudflare tunnels. But in setting that up I found out that my ISP is double NATting me, and I haven't been able to find a way around it.

So I'm left with two options: 1) buy Plex Pass so I can continue to stream remotely; or 2) get a VPS, run Tailscale and NPM on it and switch to Jellyfin.

I'm looking for a sanity check to make sure the VPS thing would work the way I think it would. If it's running Tailscale then the double NAT would be a non-issue, correct? Is there another option that I haven't thought of yet? Which of the two options would you choose?

all 22 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 5 hours ago* (last edited 5 hours ago)

I was just in your exact Situation with my Jellyfin home server. I was using Tailscale for a while, but ran into a problem: my new server is really bad at encoding, so I can only use direct play, which uses more bandwidth than the tail scale relay servers can give.

The problem with tail scale is, I basically only ever use the relay servers because my home is cgnat and most of the time when I want to stream outside of home I am on mobile data with cgnat or at college (restrictive firewall).

My solution which I implemented last weekend was to buy the cheapest VPS I could get from my trusted provider and harden it and install nginx proxy manager and tailscale. With that, I can make a direct (no relay server) connection to my home server and proxy Jellyfin to a public domain.

~~I am still figuring out how to secure Jellyfin, but I have also seen some comments that Jellyfin is secure by default and therefore ok to have exposed.~~

Actually no, it is insecure, do not expose it to the internet. I will be adding separate authentication to access it via proxy.

[–] [email protected] 8 points 14 hours ago* (last edited 14 hours ago) (3 children)

There's no reason your media server needs to be directly exposed to the public internet. Use Tailscale. Get everyone that uses it to sign up for a Tailscale account, and add them all to your Tailnet.

Tailscale will perform better than a Cloudflare tunnel because it's a direct connection between the two peers, whereas Cloudflare tunnels route through Cloudflare.

Tailscale does have relay servers, but they're only used in very rare cases, if both peers have very strict firewalls. Almost always, the connection between two peers over Tailscale is a direct connection, so there's no extra latency (other than some small overhead for the encryption)

You could use Wireguard and manually configure it to be in a mesh config, but Tailscale makes it so much easier. I'm a big fan of their product.

[–] [email protected] 1 points 3 hours ago

Can tail scale be setup on tvs and game consoles and such? Or maybe on routers?

[–] [email protected] 1 points 3 hours ago

I love Tailscale as well and it works flawlessly for everything I've ever used it for. However, I can't install Tailscale on the Roku TV that sits remotely from my server. That's the whole reason I'm looking for a different way.

[–] [email protected] 3 points 11 hours ago

Really no reason. Hmm how do I get a Roku to watch? Or get other people to watch stuff on it.

[–] [email protected] 20 points 20 hours ago* (last edited 20 hours ago) (4 children)

Do not. I repeat do not expose Jellyfin to the internet. It has too many security issues to be directly accessible from the internet.

I use Jellyfin and only access it over WireGuard. I have a mesh setup between the routers at a few family members houses.

If you have absolutely no other way then to expose it to the internet you need to make sure that you whitelist only the approved IPs in your VPS firewall and block everything else.

[–] [email protected] 3 points 13 hours ago

you can add authentic/authelia with keys for login and it should be fine

[–] [email protected] 8 points 16 hours ago (1 children)

I keep hearing claims that it's not secure enough to be exposed on the Internet, but I can't seem to find anything about unauthenticated vulnerabilities. It's got a fair amount of CVEs but they all seem to affect when you're an already authenticated user, mainly to XSS an admin as a regular user or the likes.

It's written in C#, and publicly all you can do is pretty much attempt to log in, this feels like it should be pretty sane compared to some other PHP crap I run.

Do you have any examples of previous exploits or anything else to be concerned about?

[–] [email protected] 1 points 12 hours ago (1 children)
[–] [email protected] 7 points 12 hours ago

Most of the relevant issues they link to has been closed and/or dealt with.

[–] [email protected] 6 points 17 hours ago* (last edited 15 hours ago) (2 children)

I don't really agree with you here. If you take the time to set things up properly. And prepare for IF something would happen. Your fine. Been running a exposed jellyfin server for years now. Never hat a security issue. And even if I would, not much harm could be done anyway due to how it is setup.

[–] [email protected] 1 points 12 hours ago (1 children)
[–] [email protected] 5 points 10 hours ago

Have you even looked at what you are posting? Most of those are fixed. And most are who cares.

[–] [email protected] 4 points 20 hours ago (2 children)

Thanks for mentioning that. I'll have to look into it. If I could install Tailscale on a RokuTV I'd absolutely run it that way.

[–] [email protected] 1 points 3 hours ago

I haven't seen no one mention it yet but you could simply buy a Rasp Pi and use it as a subnet router for your Tailnet.

It's how I set up a family members Jellyfin/NAS/etc which I can access all their devices by local IP address, and you could do for your Roku too?

[–] [email protected] 0 points 20 hours ago* (last edited 20 hours ago)

No worries. Better than reading that someone got hacked because they left Jellyfin wide open

You could even run a travel router, mini PC or Raspberry Pi, run the VPN on it, connect the Roku to it over the onboard WiFi adapter. On the PC/Pi you'd force all the traffic from the Roku towards Jellyfin over the tunnel. You could even define the Jellyfin in DNS (/etc/hosts) so the internet will never even know you're running Jellyfin. Something like https://raspap.com/ or even a openwrt travel router from the likes of GL.iNet would work.

[–] [email protected] 4 points 14 hours ago (1 children)

get a VPS, run Tailscale and NPM on it and switch to Jellyfin

Keep in mind that VPSs will charge for bandwidth, which adds up quickly when you're streaming.

One suggestion I haven't seen mentioned is contacting your ISP. Sometimes you can get a dedicated IP, although you might have to pay for it.

Alternatively you might just break down and pay for Plex Pass. I know that goes against the Lemmy philosophy to the very core, but for all its issues, Plex is still way ahead of Jellyfin in terms of features, UI/UX, etc. Jellyfin will get there, and I'm ready to switch the day that Plex becomes unusable, but that hasn't happened yet.

[–] [email protected] 2 points 13 hours ago* (last edited 13 hours ago)

Most VPSes I use offer a slower (200mbps) connection without a data cap for free.

[–] [email protected] 2 points 14 hours ago

Tailscale funnel is a vqlid option too

[–] [email protected] 4 points 19 hours ago (1 children)

Wasn't it brought up last week ina thread about Plex charging that it is NOT against cloudflare TOS anymore?

[–] [email protected] 2 points 8 hours ago* (last edited 8 hours ago)

https://blog.cloudflare.com/updated-tos/

Finally, we made it clear that customers can serve video and other large files using the CDN so long as that content is hosted by a Cloudflare service like Stream, Images, or R2.