Use case · Media server

Jellyfin server hosting on hardware you choose

Jellyfin server hosting comes down to two choices Jellyfin's own hardware guide makes explicit: a GPU for transcoding, because HDR-to-SDR tone mapping is very CPU-demanding, and disks sized for the library, with the system, metadata and transcode cache on an SSD. The guide recommends Intel or NVIDIA (GTX 16 / RTX 20 or newer, not the GTX 1650) and does not recommend AMD for dedicated graphics.

Configure it

Jellyfin's hardware guidance

PartJellyfin hardware selection guide
Dedicated GPUIntel Arc A-series or newer; NVIDIA GTX 16 / RTX 20 or newer, excluding the GTX 1650; AMD not recommended
Encoder qualityNVIDIA RTX 50 at the top; AMD H.264 at the bottom
CPUWith a dedicated GPU, CPU vendor and speed do not affect hardware encode speed or quality
RAM8 GB for most deployments; a headless Linux server may manage with 4 GB
System diskAbout 100 GB SSD for the OS, Jellyfin's files and the transcode cache; never an SMR hard drive for these
Media disksAny 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

  1. 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.
  2. Keep Jellyfin's data and temporary directories on local storage; the script refuses a data directory on network storage.
  3. 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.
  4. 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.

Build the media server

Pick the drives, RAID and GPU part by part, unmetered port, month to month.

Configure it

Related on Server Room

Other use cases