, ,

How to Set Up a Jellyfin Server

Abstract dark illustration of a home server rack and terminal connected to network nodes, symbolizing a self-hosted Jellyfin server setup

The fastest way to get Jellyfin running is Docker: pull the official image, mount a config folder and your media, and finish the setup wizard in your browser on port 8096. This guide covers that install end to end, along with Windows and NAS alternatives, the hardware Jellyfin actually needs, and how to reach your server from outside your house without leaving a door wide open.

🇫🇷 Ce guide est aussi disponible en français : Comment installer un serveur Jellyfin : Docker, Windows et NAS

Quick note: everything below assumes you’re setting this up for your personal, legally acquired media library, ripped discs you own, home videos, music you bought. Jellyfin doesn’t host, index, or download anything itself; it just plays back files that are already on your drive.

What hardware and OS do you actually need?

Minimum to run Jellyfin at all: almost anything, a Raspberry Pi 4 included, as long as your devices can direct-play your files without conversion. To transcode smoothly (resizing or re-encoding video on the fly for phones, slow connections, or 4K downscaling), Jellyfin’s own hardware guidance points to an Intel Core i5-11400, Pentium Gold G7400, Intel N100, or an Apple M-series chip or newer, 8GB of system RAM, and at least Intel UHD 710 graphics for hardware-accelerated encoding.

Jellyfin runs natively on Linux, Windows, and macOS, plus inside Docker or a Proxmox LXC, so the OS question mostly comes down to what you already own. A mini PC or an old office desktop repurposed as a server handles most homelabs fine. If everyone streaming from your library has a device that already supports the file format you’re storing, you may never trigger a transcode at all, which is worth checking before you spend money on new hardware.

Is running a Jellyfin server legal?

Yes. Jellyfin is free, open source software, and installing it on your own hardware isn’t legally different from installing any other program. What matters is what you put on it. This guide sticks to your own stuff: discs you’ve ripped, photos and home videos, music and shows you paid for. Jellyfin itself never hosts, indexes, or fetches content from anywhere outside your own media folders, so the legal question comes back to how you sourced your files, not to the software.

Docker vs Windows vs NAS: which install should you pick?

All three end up at the same web interface once they’re running. What changes is how much upkeep they need afterward, and how much you’re already invested in that platform.

DockerWindowsNAS / Proxmox
Best forAnyone comfortable with a terminalA desktop that’s already on 24/7An existing Synology, Unraid, TrueNAS, or Proxmox box
Setup time10-15 minutes5-10 minutes15-25 minutes
UpdatesOne commandRe-run the installerThrough the app store or container manager
Cleanup if you stop using itDelete the container and foldersUninstall like any Windows appRemove the app or container

How to install Jellyfin with Docker

Why Docker first: it’s what most of the self-hosted community runs in production. Updating is one command, and removing Jellyfin later doesn’t leave files scattered across your OS.

  1. Install Docker and Docker Compose if you don’t already have them. Docker’s own site has installers for Linux, Windows, and macOS.
  2. Create three folders on your server: one for Jellyfin’s config and database, one for its transcoding cache, and one that either holds your media or points at your existing Movies, TV, and Music folders.
  3. Save the docker-compose.yml file below in its own folder and edit the three volume paths to match what you just created.
  4. Run the compose file from that same folder.
  5. Open your server’s IP address on port 8096 in a browser and complete 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 easiest option on Linux since it skips manual port mapping and plays nicely with local network discovery, but it’s Linux-only. On Windows or macOS with Docker Desktop, map the ports explicitly instead: 8096:8096 for the web interface and 8920:8920 if you turn on HTTPS directly inside Jellyfin. The official image lives on Docker Hub, and once it’s running, this is also the easiest way to add more apps alongside it if you’re building out a wider Docker & Containers setup.

How to install Jellyfin on Windows

  1. Grab the Windows package from Jellyfin’s official installation docs and run it.
  2. Accept the defaults. The installer sets up Jellyfin Server as a Windows service, so it starts automatically with your PC.
  3. Once it finishes, open http://localhost:8096 in a browser to reach the setup wizard.
  4. Allow Jellyfin through Windows Firewall if you want other devices on your network to see it. The installer usually prompts for this automatically.

Installing Jellyfin on a NAS or Proxmox

If you’re already running Synology, Unraid, TrueNAS Scale, or Proxmox, Jellyfin usually goes in as a container rather than a manual install. Unraid has it in Community Applications. TrueNAS Scale runs it as a built-in app or a custom Docker container. Synology needs Container Manager, since Jellyfin isn’t in the official Package Center. On Proxmox, the cleanest route is an LXC container running the same Docker Compose file from the section above, which keeps it isolated from your other VMs. We go deeper on picking a platform in our Homelab and Proxmox guides.

Finishing the setup wizard

Jellyfin’s setup wizard is short, five screens if you’re only adding one library.

  1. Pick your display language and create the admin account. This is a local account; there’s no sign-up with Jellyfin the organization.
  2. Click Add Media Library, choose a content type such as Movies, TV Shows, or Music, and point it at the matching folder inside /media.
  3. Set a metadata language and decide whether Jellyfin should fetch artwork and descriptions automatically.
  4. Under Remote Access, leave “Allow remote connections” on but turn off automatic port forwarding. The next section covers a safer way to do that.
  5. Finish the wizard and log in with the admin account you just created.

What you’ll have: Jellyfin scanning your library and generating thumbnails in the background. A library of a few hundred movies typically finishes indexing within minutes on a wired connection, though the first artwork fetch can take longer if your internet is slow.

Setting up remote access without opening yourself up

Skip automatic port forwarding. UPnP will happily forward port 8096 straight to the internet, which also means anyone scanning for open Jellyfin servers can find yours. Jellyfin is actively maintained software, and that cuts both ways: it also means it’s had remote-access bugs patched before, the same as any server software exposed directly to the internet.

Two safer paths. Put Jellyfin behind a reverse proxy such as Caddy or Nginx Proxy Manager, with a real domain and an HTTPS certificate handling the connection instead of Jellyfin itself. Or skip exposing it to the public internet at all and connect over a mesh VPN like Tailscale or WireGuard, so your server never has an open port facing the internet in the first place. If you’ve never set up a reverse proxy before, start with the VPN route, it’s the one we’d recommend by default.

Is Jellyfin really harder to set up than Plex?

A little, mostly because Plex walks you through creating a hosted account and Jellyfin skips that step entirely. Past the docker compose up command, the two setup wizards look almost identical: create an admin user, add libraries, wait for metadata to fetch. We compared the two in more depth, including transcoding and remote access, in our Jellyfin vs Plex breakdown if you’re still deciding which one to install.

FAQ

What port does Jellyfin use?

8096 for HTTP by default, and 8920 if you enable HTTPS directly on the Jellyfin server instead of through a reverse proxy.

Can I run Jellyfin on a Raspberry Pi?

Yes. A Raspberry Pi 4 or 5 handles direct play for a handful of users without trouble. Hardware transcoding is limited on the Pi’s GPU, so if your clients regularly need on-the-fly re-encoding, a mini PC with an Intel chip will feel a lot less strained.

Does Jellyfin need an internet connection to run?

No. It runs entirely on your local network and doesn’t phone home. You’ll want internet access the first time it fetches metadata and artwork, but day-to-day playback works fine offline.

How do I update Jellyfin?

With Docker Compose, pull the new image and restart the container. On Windows, download and run the newer installer over the old one. On a NAS, update through whichever app store or container manager you installed it from originally.

Is Jellyfin actually free?

Yes, entirely. No premium tier, no paid add-on for remote streaming, no required account. A handful of optional third-party plugins and apps have their own costs, but the server itself is free and open source under the GPL.

Can I set up Jellyfin on Ubuntu specifically?

Yes, and Docker is the simplest route there too. Ubuntu ships with a modern enough kernel for hardware transcoding on Intel graphics out of the box, and the same docker-compose.yml above works without changes. If you’d rather install the native .deb package instead of Docker, Jellyfin’s installation docs cover the apt repository setup.

From here, our Jellyfin guides cover device-specific setup for Apple TV, Android TV, Fire Stick, Windows 11, and iPhone, and the Docker & Containers hub has more self-hosted apps worth running alongside it.

Related guides

4 responses to “How to Set Up a Jellyfin Server”

  1. […] assumes Jellyfin is already installed and working on your local network. If it’s not yet, our Jellyfin server setup guide walks through Docker, Windows, and NAS installs […]

  2. […] set up the server side yet? Our Jellyfin server setup guide walks through Docker, Windows, and NAS installs before you get to this […]

  3. […] almost always a server hardware question rather than something wrong with the Windows client, our Jellyfin server setup guide covers the hardware Jellyfin actually needs for smooth transcoding. Keeping your GPU drivers […]

  4. […] 🇬🇧 Ce guide est aussi disponible en anglais : How to Set Up a Jellyfin Server […]

Leave a Reply

Your email address will not be published. Required fields are marked *