Last updated Jun 9, 2026
Install & Configure Jellyfin#
This page covers Jellyfin. If you chose Plex instead, see Install & Configure Plex.
With the Jellyfin LXC running and storage mounted, install Jellyfin and connect it to your libraries.
Install Jellyfin on Debian#
Open a shell inside the Jellyfin LXC and run:
apt update && apt upgrade -y
apt install -y curl
# Official Jellyfin install script: adds the repository and installs the package
curl https://repo.jellyfin.org/install-debuntu.sh | bashThe script detects your Debian version, adds the Jellyfin apt repository, and installs the package. Jellyfin starts automatically after installation.
Verify it is running:
systemctl status jellyfinOpen the web UI#
From a browser on your LAN:
http://<jellyfin-lxc-ip>:8096The setup wizard will guide you through initial configuration. Create an admin account; no external account is required.
Add media libraries#
In the Jellyfin setup wizard (or later via Administration → Dashboard → Libraries), add:
| Library type | Path |
|---|---|
| Movies | /mnt/media/movies |
| TV Shows | /mnt/media/tv |
These paths match what was mounted in the Mount Storage step.
Jellyfin will scan on startup. The directories will be empty until Sonarr and Radarr download something.
Set up scan notifications#
To make Jellyfin scan immediately when Sonarr or Radarr imports a file:
- In Jellyfin, go to Administration → Dashboard → API Keys and create a new key
- In Sonarr, go to Settings → Connect → Add → Emby/Jellyfin, enter the Jellyfin LXC IP and the API key
- Do the same in Radarr
This triggers an instant library update after each import instead of waiting for a scheduled scan.
Connect Seerr to Jellyfin#
Seerr supports Jellyfin natively. If you are setting up Seerr for the first time, choose Jellyfin during the setup wizard. If Seerr is already running with Plex, you can add Jellyfin as an additional media server.
- In Jellyfin, go to Administration → Dashboard → API Keys and create a key for Seerr
- In the Seerr setup wizard, select Jellyfin as your media server
- Enter the server URL (
http://<jellyfin-lxc-ip>:8096) and the API key - Click Sync Library to confirm the connection
Users authenticate with Jellyfin accounts you create under Administration → Users. No plex.tv account is needed.
GPU passthrough (hardware transcoding)#
Hardware transcoding is free in Jellyfin; no paid tier is required. To enable it, pass through the GPU from the Proxmox host to the Jellyfin LXC.
For Intel iGPU (QSV):
On the Proxmox host, add the following lines to the LXC config file (/etc/pve/lxc/<id>.conf):
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
lxc.hook.pre-start: sh -c "chown 100000:100154 /dev/dri/renderD128"Inside the Jellyfin LXC, add the jellyfin user to the render group:
usermod -aG render jellyfin
apt install -y intel-opencl-icd
systemctl restart jellyfinFor NVIDIA:
Install the NVIDIA drivers on the Proxmox host first, then pass the device through to the LXC. Inside the LXC, install the required libraries:
apt install -y jellyfin-ffmpeg5 libnvcuvid1 libnvidia-encode1After passthrough is configured, enable hardware acceleration in Jellyfin under Administration → Dashboard → Playback and select your GPU type (Intel QSV, NVIDIA NVENC, or VA-API).
Remote access#
Jellyfin does not include a built-in relay. Remote access requires a reverse proxy. If you are already using Cloudflare Tunnels, add a tunnel pointing to http://<jellyfin-lxc-ip>:8096, the setup is the same as for any other service in the stack.
Result#
Jellyfin is installed and connected to your media libraries. No media is available yet; that comes after configuring the download services.
Continue to Configure Download Client (SABnzbd).