How to set up Jellyfin: a beginner's guide (2026)
How to set up Jellyfin from scratch: hardware, installing the server, the setup wizard, file naming, libraries, users and clients.
By Swiftly Player10 min read
Disclosure: we build Swiftly Player, one of the clients in this article. We point out where other apps do better.
Version numbers and setup steps come from jellyfin.org's own documentation and GitHub releases, checked in September 2026.
TL;DR
Install the Jellyfin server on a computer that stays on (Windows, macOS, Linux or a container), then open it in a browser to run the setup wizard: pick a language, create an admin account, add your first library, and choose a metadata language. Put your movies and shows in folders named the way Jellyfin's own naming guide describes, so posters and episode titles match automatically. After that, add the rest of your libraries, create accounts for the people who will use the server, and install a Jellyfin client on each phone, TV or computer you plan to watch on. The current stable server is Jellyfin 12.1, released September 15, 2026; see our separate article on what changed in 12.0 and 12.1 before you upgrade an older server.
Choose your hardware first
Jellyfin's own hardware selection guide gives concrete numbers instead of a vague "it depends". Without a dedicated graphics card, it recommends an "Intel Core i5-11400, Intel Pentium Gold G7400, Intel N100, Apple M series or newer" with "8GB System RAM". With a dedicated GPU, the bar for the CPU drops to "Intel Core i5-2300, AMD FX-8100 or better (Geekbench 6 Multicore 1500 or better)", again with 8GB of RAM, or 4GB "for a Linux server without its own GUI". The guide recommends "100GB SSD for your OS, Jellyfin files and transcoding cache", and explicitly warns against SMR hard drives, which it says give "a VERY poor experience" for that role. Your media itself can live on slower storage, including a network share, as long as its sequential read speed covers your bitrate.
None of this matters if your files play as Direct Play, meaning the server sends them to the client exactly as stored, with no conversion at all. It only matters when a client cannot decode a file itself and the server has to transcode, converting it on the fly. Our hardware acceleration guide covers Intel Quick Sync, AMD VA-API and Nvidia NVENC in detail, including Docker device passthrough, once you know you need it.
Install the Jellyfin server
Windows
Jellyfin's Windows installation docs describe three steps: download the installer from the downloads page, run it, and open http://your_local_IP_address:8096 in a browser once it launches automatically. The docs note that installing Jellyfin as a Windows service is "not recommended" for most setups. To update, close Jellyfin from the system tray and run the newer installer over the old one. To remove it, use "Add or remove programs" in Windows Settings.
macOS
On macOS, Jellyfin ships only as a native app, no Docker option is documented on that platform. The macOS installation docs describe downloading the DMG image, dragging the .app into Applications, and starting it from its menu bar icon. One caveat from the same page: "For Apple Silicon Macs below macOS 14, please update to a newer version of macOS or download the x86 release." Updating and removing both work the same way: replace the app, or drag it to the Trash after stopping the server.
Linux
For Debian, Ubuntu and their common derivatives (Mint, Raspberry Pi OS, KDE Neon), the Linux installation docs point to an install script:
curl -s https://repo.jellyfin.org/install-debuntu.sh -O && \
curl -s https://repo.jellyfin.org/install-debuntu.sh.sha256sum -O && \
sha256sum -c install-debuntu.sh.sha256sum
sudo bash install-debuntu.shPaste it into a terminal and press Enter.
For other distributions, the docs recommend a container instead, or a community-maintained package where one exists.
Docker, and other containers
Whatever your OS, running Jellyfin in a container is the option jellyfin.org lists first on its installation overview, and it is the same command on Windows, macOS or Linux once Docker is installed. We cover the full docker-compose.yml, volume layout and device passthrough separately: see setting up Jellyfin with Docker Compose.
The setup wizard, step by step
The first time you open Jellyfin in a browser, it walks you through the setup wizard:
- Select your language. This only affects the wizard and your own account; the server's own default language is set separately.
- Set up an administrator account. This is your first user, with full access. You can add ordinary user accounts once the wizard finishes.
- Add your first media library, or skip this screen and add libraries afterward from the dashboard.
- Pick a preferred metadata language and region, used as the server-wide default when Jellyfin fetches posters, plot summaries and cast lists.
- Configure basic networking, including whether to allow remote access to the server at all. You can change this later; our remote access guide compares VPNs, reverse proxies and Cloudflare Tunnel for reaching your server from outside your home network.
- Finish. The wizard ends with a short list of suggested next steps.
Name your files so Jellyfin can find them
Jellyfin matches your files to the correct movie or episode by folder and file name, following its own naming documentation for movies and for TV shows. Get this wrong and you get wrong posters, missing episodes, or shows split into duplicates.
Movies
Put each movie in its own folder, named Movie Name (year) [imdbid-tt00000000]. The year and the metadata ID in brackets are optional, but the docs note they "improve reliability" when a title is ambiguous. The video file inside should match the folder name:
Movie Name (2030) [imdbid-tt00000000]/
└── Movie Name (2030) [imdbid-tt00000000].mkvFor alternate versions of the same film (a director's cut, a different resolution), keep the base name identical and add a version label after a hyphen:
Movie (2021) [imdbid-tt12801262]/
├── Movie (2021) [imdbid-tt12801262] - 2160p.mkv
├── Movie (2021) [imdbid-tt12801262] - 1080p.mkv
└── Movie (2021) [imdbid-tt12801262] - Directors Cut.mkvResolution labels ending in "p" or "i" sort from highest to lowest; anything else sorts alphabetically, and the first version in that order is what plays by default.
TV shows
The docs describe a three-level structure: a series folder, season folders inside it, and episode files inside those.
Shows/
└── Series Name (2018)/
├── Season 01/
│ ├── Series Name S01E01.mkv
│ └── Series Name S01E02.mkv
└── Season 02/
└── Series Name S02E01.mkvSeason folders must be named Season * with the number, not abbreviated to "S01" or "SE01", and padded with a leading zero (Season 05, not Season 5). Episode files use Series Name S##E##, again zero-padded. Multiple episodes packed into a single file are supported but discouraged, and the docs suggest splitting them with a tool like MKVToolNix. Multi-part files use a suffix such as -part 1 or -cd1.
Add your libraries and set up metadata
Back in the dashboard (Admin → Dashboard → Server → Libraries), click "Add Media Library" for anything you skipped in the wizard. Jellyfin's library documentation says movies, shows and music get "the three most common types of content" and the most reliable client support; books, photos and mixed-content folders are also options, though the docs call the mixed type "currently discouraged due to unreliable metadata results." A library can combine several folders, even ones on different drives or network shares, under a single entry.
For metadata, the built-in providers are The Movie Database (TMDb), OMDb and local .nfo files, with a note that "OMDb API only provides English metadata." TheTVDB, fanart.tv and other sources come as plugins from the catalog; see our list of Jellyfin plugins for what is currently available and which ones are worth adding.
Create user accounts
Each person watching gets their own account, with their own watch history and recommendations. From the Users page in the dashboard, click the "+" to add one, and give it a display name. By default a new user gets access to all libraries; turn that off if you want to restrict a child's account to specific folders, and remember that a newly added library does not automatically appear for users without that "all libraries" setting.
Editing an existing user opens four tabs: Profile for playback and download permissions, remote access and whether the account can manage the server; Library Access for which libraries and which devices it can use; Parental Control for a maximum content rating, blocked or allowed tags, and an access schedule limiting which hours it can log in; and Password.
Hardware acceleration
If your files force a transcode instead of playing as Direct Play, the CPU alone gets slow fast, especially at 4K or with more than one stream running. Turning on hardware acceleration hands that work to your GPU instead. We cover Intel Quick Sync, AMD VA-API and Nvidia NVENC, including Docker's device passthrough and the exact dashboard setting, in a separate hardware acceleration guide.
Remote access
Reaching your server outside your home network is a separate decision from installing it, with real security trade-offs between a VPN, a reverse proxy, Cloudflare Tunnel and plain port forwarding. Our remote access guide compares all four and lists the server settings each one needs.
Install a client on each device
The server is only half of Jellyfin; you also need an app on the phone, tablet, TV, or computer you actually watch on. Our comparison of Jellyfin clients covers the main options across every platform.
FAQ
What is the current version of Jellyfin?
12.1 was the current stable server release at the time of writing, from September 15, 2026, one week after the 12.0 major release. See our dedicated article on 12.0 and 12.1 for what changed and what to check before upgrading.
Does Jellyfin need a strong computer to run?
Not for Direct Play. Jellyfin's own hardware guide recommends 8GB of RAM and a mid-range CPU such as an Intel Core i5-11400 or an Intel N100 for a server without a dedicated GPU. The CPU or GPU only comes under real load when a client cannot play a file as it is and the server has to transcode it.
Why doesn't Jellyfin find posters or metadata for my movies and shows?
Almost always a naming problem. Jellyfin matches titles by folder and file name; check your structure against the official naming guide for movies and for shows, then run a metadata refresh on the affected library.
Can I run Jellyfin without Docker?
Yes. Jellyfin has native installers for Windows and macOS, and native packages for Debian, Ubuntu and their derivatives on Linux, all covered in the installation docs. Docker is a convenient option, not a requirement.
Is Jellyfin free?
Yes. Jellyfin is free, open-source software with no subscription or account required to run your own server.
Do I need to open ports on my router to use Jellyfin?
No, not if you only want access at home. Opening ports is only relevant for remote access from outside your network, and it is the option Jellyfin's own docs are least enthusiastic about; see our remote access comparison for the alternatives.
Summary
Setting up Jellyfin has a fixed order that avoids most beginner problems: check your hardware against the official guide, install the server for your platform, run the setup wizard, then name your movie and TV folders the way Jellyfin's naming docs describe before you add libraries. From there, add the metadata sources you want, create an account for everyone who will use the server, and put a client app on every device. Hardware acceleration and remote access are both worth reading up on separately once the basics work, and they are not required to get a first library playing.


