Skip to main content

Jellyfin with HA

Overview

Jellyfin is a free and open-source media server software that allows you to organize, manage, and stream your media collection. This guide will walk you through the process of setting up Jellyfin with Hardware Acceleration (HA) on Proxmox.

In order to enable HA, you will need to ensure that your GPU Passthrough has been set up correctly. I will be install Jellyfin on a VM with Debian 12, using only the CLI.

Create Jellyfin VM

General

Name the VM, I usually name it jellyfin.

general

OS

Select Linux and Debian 12 (64-bit).

System

Machine: q35 BIOS: OVMF (UEFI) EFI Disk: Yes EFI Storage: local-lvm SCSI Controller: VirtIO SCSI Qemu Agent: Yes

Make sure to unselect Pre-Enroll keys

system

Disks

Set the disk size to be 32GB and select Discard if you are using an NVME or SSD.

disks

CPU

Set the CPU to Host and set the cores to 4 and sockets to 1.

cpu

Memory

I prefer to use 8GB of RAM for Jellyfin, but you can use less or more depending on

memory

Network

I leave everything here as defaults.

network

Confirm

Finally on the confirm screen just click Finish to create the VM.

Install Debian

Once the VM is created, select it and then click the Console menu item to view the console. Then click Start Now.

console

The VM will boot into the Debian installer. Select Graphical Install and press Enter.

installer

Select your language, location, and keyboard layout. I usually select English, United States, and American English.

I will be using this VM for jellyfin, so I will change the hostname to jellyfin. Click Continue to proceed.

hostname

I leave Domain name blank. Then enter a secure password for the root user. I leave Full name for the new user blank and enter a username of jellyfin. Enter a secure password for the user and click Continue.

Select the appropriate Timezone. For the disk partitions, I prefer to use Guided - use entire disk and All files in one partition. This is the easiest option and works well for most users. Click Continue to proceed. Whem prompted to Write the changes to disks and configure LVM? select Yes and click Continue.

For the disk size, you can typically leave the default size, or enter max to be sure to use the entire disk. Click Continue to proceed.

When prompted to Write the changes to disks? select Yes and click Continue. The base system will now be installed.

There will be a prompt to Scan extra installation media?. Select No and click Continue.

The package manager will be configured, select your cloest location to find a mirror. I will select United States and deb.debian.org. Click Continue to proceed. Enter a proxy if you have one, otherwise leave it blank and click Continue.

Decide if you want to participate in Popularity-Contest. I usually select No and click Continue.

In this guide, I will be unselecting all GUIs and only installing the SSH server and standard system utilities. This is because I will be using the CLI to install Jellyfin. If you want to use a GUI, you can select one of the options here. Click Continue to proceed.

packages

Press Continue to reboot when the installation is complete.

Update and Install Depenencies

Once the VM has rebooted, log in with the root user. Then run the following commands to update the system and install the dependencies:

apt update && apt upgrade -y

and

apt install -y sudo curl cifs-utils

Now add the user jellyfin to the sudo group:

usermod -aG sudo jellyfin

At this point I prefer to shutdown the VM and attach the GPU. You can do this by selecting the VM and then clicking on the Hardware tab. Then click on Add and select PCI Device.

pcidevice

Select your GPU from the list and click Add. Make sure to check the box for All Functions to passthrough all functions of the GPU.

gpu

lick Advanced and select PCI Express.

advanced

If you would like the GPU audio, you can also select the audio device as a separate PCI device. Once finished, start the VM. I prefer to use an SSH client called Termius to connect to the VM. You can also use the built in SSH client in Windows or MacOS. If you are using Windows, you can also use Putty. The built-in console can get a bit tedius.

Verify GPU Passthrough

Once the VM is started, SSH into the VM and run the following command to verify that the GPU is passed through correctly:

lspci | grep -i nvidia

verify

Install NVIDIA Drivers

Now that the GPU is passed through, we need to install the NVIDIA drivers. First, update the sources to include non-free and contrib packages.

Edit the sources list:

nano /etc/apt/sources.list

Then add contrib non-free to the end of the lines that start with deb. It should look like this:

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/ bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

Then save and exit the file by pressing CTRL + X, then Y, and then Enter.

sudo apt update
sudo apt install -y nvidia-driver nvidia-smi nvidia-cuda-toolkit

Reboot the VM

sudo reboot now

Once the VM has rebooted, run the following command to verify that the NVIDIA drivers are installed correctly:

nvidia-smi