Skip to content

Instantly share code, notes, and snippets.

@brwyatt
Created April 23, 2025 03:01
Show Gist options
  • Save brwyatt/2d44ab5e083230f1c99a4bde92da1a3a to your computer and use it in GitHub Desktop.
Save brwyatt/2d44ab5e083230f1c99a4bde92da1a3a to your computer and use it in GitHub Desktop.
Create Render LXC in Proxmox

Create a Render LXC in Proxmox

Instructions to setup a dedicated rendering LXC for Jellyfin. Useful for running Jellyfin in a VM and without passing through the whole iGPU, instead passing off to LXCs, allowing using more than one Proxmox host in the cluster for rendering.

Sources

Hardware

  • Minisforum MS-01

Proxmox Steps

  • Create a privileged LXC.
    • Ubuntu: bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/ubuntu.sh)"
    • Note: Privileged required in order to use NFS to mount data/cache directories from Jellyfin server.
  • Add a Device Passthrough.
    • Device Path: /dev/dri/renderD128
    • GID (for Ubuntu 24.04): 993
    • Mode: 0660
  • Reboot the LXC

Install Setup container dependencies

Install dependencies

apt install -y vim apt-transport-https ca-certificates curl gpg intel-opencl-icd

Add Jellyfin repo

curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/jellyfin.gpg > /dev/null
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
apt update

Install Jellyfin FFMPEG

apt install jellyfin-ffmpeg7

Verification

/usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
/usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment