Jellyfin's hardware guidance
| Part | Jellyfin hardware selection guide |
|---|---|
| Dedicated GPU | Intel Arc A-series or newer; NVIDIA GTX 16 / RTX 20 or newer, excluding the GTX 1650; AMD not recommended |
| Encoder quality | NVIDIA RTX 50 at the top; AMD H.264 at the bottom |
| CPU | With a dedicated GPU, CPU vendor and speed do not affect hardware encode speed or quality |
| RAM | 8 GB for most deployments; a headless Linux server may manage with 4 GB |
| System disk | About 100 GB SSD for the OS, Jellyfin's files and the transcode cache; never an SMR hard drive for these |
| Media disks | Any storage with sequential speed above the media bitrate; a network share is acceptable |
Software tone mapping is the expensive case. The guide's own example: tone-mapping 4K 60 fps Dolby Vision to 4K 60 fps H.264 SDR faster than real time needs a Ryzen 9 5950X. A supported GPU does the tone mapping and the encode in hardware, which takes that load off the CPU.
When transcoding happens at all
A client that supports the file's codec, container and bitrate plays it directly and the server only reads from disk. Transcoding starts when a client cannot: a browser without HEVC, a TV that cannot do HDR, a remote viewer on a link slower than the file's bitrate, or burned-in subtitles. Size the GPU for the transcodes you expect at once, and the disks and port for the direct plays.
Installing on Ubuntu
- Download the official install script and its checksum, verify, then run it. It supports Ubuntu 20.04, 22.04, 24.04 and 26.04 and Debian 11 to 13.
- Keep Jellyfin's data and temporary directories on local storage; the script refuses a data directory on network storage.
- For NVIDIA, install jellyfin-ffmpeg, the NVIDIA driver and its NVENC/NVDEC libraries (libnvidia-encode and libnvidia-decode on Ubuntu), check the card with nvidia-smi, then enable NVENC in the dashboard's playback settings and untick codecs the card does not support.
- Add the media libraries from the array, then put a reverse proxy with a trusted certificate in front.
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.sh
Ports and remote access
The web interface listens on 8096/tcp; 8920/tcp is used only when Jellyfin's own HTTPS is enabled, and 7359/udp is client discovery, which the docs say should not be exposed externally. Jellyfin's networking guide calls forwarding ports directly to the internet insecure and recommends a reverse proxy or a VPN, with HTTPS from a trusted authority such as Let's Encrypt. On a dedicated server that means nginx or Caddy on 443, 8096 bound to localhost or firewalled, and SSH.
Building the machine
A media server is a storage box with an encoder attached, which is why a fixed plan rarely fits. On a custom dedicated server you choose the platform, memory, the controller, the drives and how many (up to 24 bays), the RAID level, and a GPU from the cards that board takes, with the price updating as you pick. The GPU list shows every card we fit; choose one Jellyfin recommends.
The port is unshared and unmetered, so remote streams never become a traffic bill. A build is handed over 4 to 24 hours after the order is approved; a racked machine that already matches goes live in about 30 minutes. For live channels rather than a library, see video transcoding servers.
Your library, your rights
Jellyfin serves media you own or have the right to share: home video, ripped discs you own, licensed content, a studio's archive. A server for a library you do not have the rights to is not a use case this page covers. For a photo archive alongside it, see Immich.
Questions
Do I need a GPU for Jellyfin?
Only for transcoding. Direct play needs none. For transcoding, and above all HDR-to-SDR tone mapping, Jellyfin's guide always recommends a GPU because software tone mapping is very CPU-demanding.
Which GPU is best for Jellyfin?
Jellyfin's guide recommends Intel (Arc A-series or newer) or NVIDIA GTX 16 / RTX 20 or newer, excluding the GTX 1650. It does not recommend AMD for dedicated graphics.
How much RAM does a Jellyfin server need?
The guide recommends 8 GB for most deployments; a headless Linux server may manage with 4 GB.
Can the media live on a NAS?
Media can, if its sequential speed exceeds the bitrate. Jellyfin's data and temporary directories should be local; the official install script refuses network storage for the data directory.
Which port does Jellyfin use?
8096/tcp for HTTP. 8920/tcp only when Jellyfin's own HTTPS is on. Publish it through a reverse proxy with a trusted certificate rather than forwarding the port directly.
Which drives should hold the library?
Any whose sequential speed is above the media's bitrate; the guide even allows a network share. Put the OS, Jellyfin's metadata and the transcode cache on an SSD: the guide says to avoid SMR hard drives for those files because of their heavy random access.