Jellyfin is a free, open-source media server: install it on a spare PC, a mini server, or a NAS, point it at your video and music folders, and it streams that library to phones, smart TVs, and browsers. It’s the app a lot of self-hosters land on after deciding they’re done paying for features that used to be free elsewhere. No account required, no subscription tier, nothing held back. This page covers what it’s actually good at, how to get it running with Docker, and how it compares to Plex and Emby.
Quick facts: Jellyfin is 100% free and open source under the GPL-2.0 license, built and maintained by volunteers with no company behind it. It runs on Linux, Windows, and macOS, plus Docker and most NAS platforms. Everything on this page assumes you’re using it for your personal, legally acquired media library: ripped discs you own, home videos, music you’ve bought. Jellyfin doesn’t host, index, or fetch content from anywhere on its own; it just organizes and streams whatever you already have.
What is Jellyfin?
Jellyfin started in 2018 as a fork of Emby’s 3.5.2 codebase, built by developers who didn’t want Emby’s core features locked behind a subscription. Since then it’s been rewritten to run natively on .NET, gained live TV and DVR support, and stayed completely free while Emby moved the opposite direction. Nobody owns Jellyfin. There’s no company that could change the pricing model tomorrow, just a volunteer community maintaining a project with roughly 54,000 stars on GitHub.
Compatible with: Android, iOS, Android TV, Fire TV, Roku via the Jellyfin channel, and most smart TVs through a browser or the Kodi add-on, plus native apps for Windows, macOS, and Linux. There’s no official Apple TV app; community options like Swiftfin and Infuse cover that gap instead.
What do people actually use it for?
The obvious one is a home Netflix replacement: movies and TV shows ripped from discs you own, organized automatically with posters and episode data. Past that, people run it as a personal music library instead of a streaming subscription, a place to back up home videos and family photos off a phone, and live TV with a cheap tuner plus an electronic program guide. A few of us use it for audiobooks too, though that’s really a job for dedicated software if you’re doing it seriously.
How to install Jellyfin with Docker
Prereq: this assumes Docker and Docker Compose are already installed. If they’re not, Docker’s own installation docs cover Linux, Windows, and macOS. If you’d rather skip Docker entirely, our complete Jellyfin server setup guide walks through native Windows and NAS installs too.
- Create three folders: one for Jellyfin’s config and database, one for its transcode cache, and one for your media, or point it at folders you already have.
- Save the docker-compose.yml below into its own folder and edit the three volume paths to match.
- Run the compose file from that same folder.
- Open your server’s IP address on port 8096 in a browser and finish the setup wizard.
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: 1000:1000
network_mode: host
volumes:
- /path/to/config:/config
- /path/to/cache:/cache
- /path/to/media:/media
restart: unless-stopped
docker compose up -d
network_mode: host is the simplest option on Linux since it skips manual port mapping. On Windows or macOS with Docker Desktop, swap that line for explicit ports instead, 8096:8096, since host networking doesn’t work the same way there. The official image lives on Docker Hub if you want to check available tags before pulling latest.
Finishing the setup wizard
- Create the admin account. This is a local account; it has nothing to do with Jellyfin the organization.
- Click Add Media Library, choose a content type, and point it at the matching folder inside /media.
- Pick a metadata language and let Jellyfin fetch artwork and descriptions.
- Leave Allow remote connections on, but skip automatic port forwarding.
- Finish the wizard and log in.
Tip: updating later is one command: docker compose pull, then docker compose up -d. No separate installer, nothing to download by hand.
Warning: don’t forward port 8096 straight to the internet. Jellyfin doesn’t serve HTTPS on that port by default, and automated scanners index exposed servers within hours. Our guide to Jellyfin remote access covers the two methods that don’t involve opening that port at all: a mesh VPN like Tailscale, or a reverse proxy with a real HTTPS certificate.
Jellyfin vs Plex vs Emby: how it compares
Short version: Jellyfin is the only one of the three that’s free with no asterisks. Plex has the most polished apps and the easiest onboarding, but it now gates remote streaming behind a Plex Pass and raised its lifetime price to $749.99. Emby is Jellyfin’s own ancestor, literally the codebase Jellyfin forked from in 2018, and it kept hardware transcoding and some client apps behind a Premiere subscription while Jellyfin never did.
| Jellyfin | Plex | Emby | |
|---|---|---|---|
| Cost | Free | Free tier + Plex Pass | Free tier + Premiere |
| Source | Open source (GPL-2.0) | Closed source | Closed source |
| Remote streaming | Free | Requires Plex Pass | Free, limited |
| Hardware transcoding | Free | Free | Requires Premiere |
| Account required | No | Yes | Optional |
That’s the two-minute version. We go through transcoding quality, device apps, and real setup time in the full Jellyfin vs Plex comparison.
Where Jellyfin wins, and where it doesn’t:
- Completely free, forever, with no premium tier
- Fully open source; nothing phones home
- Live TV and DVR support built in
- Active development with frequent releases
- No official Apple TV app
- Hardware transcoding needs a real CPU or iGPU; older hardware struggles
- Smaller plugin ecosystem than Plex
- Remote access is entirely on you to set up
FAQ
Is Jellyfin actually free?
Yes, completely. No premium tier, no subscription, no paid add-on for anything the server itself does. A handful of optional third-party client apps charge a small one-time fee, but the server and official clients cost nothing.
Is running a Jellyfin server legal?
Yes. It’s open-source software like any other program; installing it isn’t legally different from installing anything else. What matters is what you put on it. This page is written around your own, legally acquired media, not a way around paying for anything.
Does Jellyfin need powerful hardware?
Not for direct play. A Raspberry Pi 4 handles a handful of users fine as long as their devices already support the file format. Transcoding is what actually needs CPU or GPU power; a modest mini PC with an Intel iGPU covers most home setups.
Can I install Jellyfin without Docker?
Yes. Native installers exist for Linux, Windows, and macOS through Jellyfin’s own installation docs. Docker is just the fastest way to get a clean install that’s easy to update later.
How is Jellyfin different from Plex and Emby?
Mainly cost and control. Jellyfin doesn’t hold any feature back behind a paid tier, and there’s no company that could change that later the way Plex and Emby both have. See the comparison table above for the specifics.
Can I stream Jellyfin outside my home network?
Yes, through a VPN like Tailscale or a reverse proxy with a real certificate, not by forwarding Jellyfin’s port straight to the internet. The remote access section above covers both starting points.
For everything else Jellyfin-related on this site, from device-specific apps to remote access troubleshooting, our Jellyfin category page rounds it up.