Use hardware transcoding, on an Intel NUC, running Plex in an unprivileged LXC container

This post is still in draft.

I used to run Home Assistant supervised on a Intel NUC. It ran Debian, and apart from Home Assistant I also run a few Docker containers (Resilio Sync, Plex, ..). However, as I kept getting more warnings that my supervisor was in an unsupported state, I knew it was time to do it differently.

At first I feared I would have to buy another Intel NUC, or a Home Assistant Yellow. Luckily, a wise friend told me about I should run Proxmox Virtual Environment.

So I did, and once Home Assistant was running smoothly in a Virtual Machine, I wanted to run Plex in an LXC Container.

Create a LXC Container and install Plex

First let’s create a Container!

ImageDebian
CPU4
Memory8192 MB
Swap0
Bootdisk size32 GB

Jump in the Console and let’s install Plex!

apt update
apt upgrade
echo deb https://downloads.plex.tv/repo/deb public main | tee /etc/apt/sources.list.d/plexmediaserver.list
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
apt install plexmediaserver

Sources for installing Plex:

Setup Plex

Todo.

Enable hardware transcoding

Mount /dvi/dri/renderD128

/etc/pve/lxc/103.conf

lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/renderD128 none bind,optional,create=file

Fix permissions for /dvi/dri/renderD128

Todo.

/etc/pve/lxc/103.conf

lxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 998
lxc.idmap: g 998 103 1
lxc.idmap: g 999 100999 64537

/etc/subgid
root:103:1

Sources for configuring hardware transcoding: