Skip to main content

Jellyfin

Setting Up Jellyfin

Jellyfin is a free and open-source media server that allows you to organize, manage, and stream your media files.

1. Creating the LXC Container

  1. Create a new Debian Bookworm LXC container on your Proxmox VE host with the following specifications:
    • CPU: 6 cores
    • RAM: 8 GB
    • Storage: 120 GB

2. Setting Up Storage

For the time being, we will use a single drive, outside of our Truenas storage. The endgame though, is to create a storage pool and use it in the same way that we set it up for Immich.

  1. Mount the media drive on the Proxmox VE host:

    • Add the following line to your /etc/fstab file to mount the drive on boot:
    UUID=<your-drive-uuid> /mnt/jellyfin_data ext4 defaults,noatime 0 2
    
    • Reload the systemd daemon and mount the drive:
    systemctl daemon-reload
    mount -a
    
  2. Set the correct permissions for the media drive:

chown -R 100000:100000 /mnt/jellyfin_data
chmod -R 750 /mnt/jellyfin_data
  1. Mount the media drive in the LXC container:
    • Edit the LXC container's configuration file at /etc/pve/lxc/<your-lxc-id>.conf and add the following line:
mp0: /mnt/jellyfin_data,mp=/media

3. Configuring iGPU Passthrough

To enable hardware transcoding, you can pass through your Intel iGPU to the Jellyfin container.

  1. Get the iGPU information on the Proxmox VE host:
ls -l /dev/dri # Gives the iGPU card name
getent group render # Gives the render group's ID
  1. Add the iGPU to the LXC container:
    • In the Proxmox VE web UI, navigate to the LXC container's Resources tab.
    • Click Add > Device Passthrough.
    • Set the Device Path to /dev/dri/renderD128 and the GID in CT to the GID of the render group.

4. Installing Jellyfin

  1. Start the LXC container and log in to its shell.

  2. Install Jellyfin:

    • Follow the official Jellyfin documentation to install Jellyfin on Debian. The following commands should get you started:
apt update && apt upgrade -y
apt install -y curl gnupg apt-transport-https ca-certificates
curl https://repo.jellyfin.org/install-debuntu.sh | bash
  1. Set the correct permissions for the iGPU device:
chown root:render /dev/dri/renderD128
chmod 660 /dev/dri/renderD128

5. Configuring LDAP Authentication

  1. Complete the initial Jellyfin setup:

    • Access the Jellyfin web UI at http://<your-lxc-ip>:8096 and complete the initial setup wizard.
  2. Install the LDAP plugin:

    • Navigate to Dashboard > Plugins and install the LDAP-Auth plugin.
    • Restart Jellyfin: systemctl restart jellyfin.

Pasted image 20250912142857.png

  1. Configure the LDAP plugin:
    • Navigate to Dashboard > Plugins > LDAP-Auth.
    • Fill in the following details:
      • LDAP Server: dc1.yourdomain.com
      • LDAP Port: 636
      • Enable Secure LDAP: Checked
      • LDAP Bind User: CN=jellyfin,OU=ServiceAccounts,DC=yourdomain,DC=com
      • LDAP Bind Password: your-jellyfin-password
      • LDAP Base DN for queries: OU=Users,DC=yourdomain,DC=com
      • LDAP search filter: (&(sAMAccountName={username})(memberOf=CN=JellyfinUsers,OU=Groups,DC=yourdomain,DC=com))
      • LDAP Admin filter: (&(sAMAccountName={username})(memberOf=CN=JellyfinAdmins,OU=Groups,DC=yourdomain,DC=com))
      • LDAP Username attribute: sAMAccountName

Pasted image 20250912143042.png

[!NOTE] You will need to create a jellyfin service account and JellyfinUsers and JellyfinAdmins groups in your Active Directory.

  1. Save the settings and test the LDAP connection.

Next Steps

With Jellyfin set up, you can now proceed to install Immich.

► Immich