Jellyfin install

Proxmox

Create a new lxc privileged container with nested feature for docker

Make sure you dont start the container after creation

Need to open the shell on the node where the new container is created

/etc/pve/lxc/xxx.conf

1
2
3
4
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

Start the lxc container

Container

Will need to install Docker as root

1
2
3
4
5
apt install curl
curl -fsSL https://get.docker.com | sh
useradd -s /bin/bash -m ec2-user
usermod -aG docker ec2-user
su ec2-user

run the following commands as user

1
2
3
4
cd
mkdir /home/ec2-user/config
mkdir /home/ec2-user/cache
touch /home/ec2-user/docker-compose.yml

Update the compose file

/home/ec2-user/docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
services:
  jellyfin:
    image: jellyfin/jellyfin:10.11.1
    container_name: jellyfin
    user: 1000:1000
    group_add:
      - '993'
    ports:
      - 8096:8096/tcp
      - 7359:7359/udp
    volumes:
      - ./config:/config
      - ./cache:/cache
      - type: bind
        source: ./media
        target: /media
        read_only: true
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
    restart: 'unless-stopped'
    environment:
      - JELLYFIN_PublishedServerUrl=https://jellyfin.service

then start jellyfin

1
docker compose up -d

Verify video encoding

1
2
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
All rights reserved