Skip to content

Instantly share code, notes, and snippets.

@alimbada
Last active September 11, 2025 14:43
Show Gist options
  • Select an option

  • Save alimbada/bb562388c375ff3eeb876acb8c4577a6 to your computer and use it in GitHub Desktop.

Select an option

Save alimbada/bb562388c375ff3eeb876acb8c4577a6 to your computer and use it in GitHub Desktop.

Revisions

  1. alimbada revised this gist Sep 11, 2025. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion SETUP.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@


    1. Create your LXC (Host: PVE 8.3, LXC: Debian 12)
    1. Create your LXC (Host: PVE 8.3, LXC: Debian 12). For hardware I went with 4 cores, 8GB RAM, 32GB storage.
    2. **In LXC:** Create non-root user: `adduser foo`
    3. Add to sudo: `usermod -aG sudo foo`
    4. Set up SSH (see Arch wiki)
  2. alimbada revised this gist Sep 11, 2025. No changes.
  3. alimbada revised this gist Sep 10, 2025. 1 changed file with 9 additions and 2 deletions.
    11 changes: 9 additions & 2 deletions SETUP.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,12 @@
    1. Create your LXC
    2. Follow step 2 [here](https://www.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/). [[Archive Link]](https://web.archive.org/web/20250910230721/https://old.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/) <br/>


    1. Create your LXC (Host: PVE 8.3, LXC: Debian 12)
    2. **In LXC:** Create non-root user: `adduser foo`
    3. Add to sudo: `usermod -aG sudo foo`
    4. Set up SSH (see Arch wiki)
    5. Install Docker: [https://docs.docker.com/engine/install/debian/](https://docs.docker.com/engine/install/debian/#install-using-the-repository)
    6. Setup non-root Docker management: [https://docs.docker.com/engine/install/linux-postinstall/](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)
    7. Follow step 2 [here](https://www.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/). [[Archive Link]](https://web.archive.org/web/20250910230721/https://old.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/) <br/>
    Note: Probably don't need to add group 44 (video) as Jellyfin (or more accurately, ffmpeg) uses the render group only (104).
    3. **In LXC:** Instead of step 3 in the above post, install `libva2` from the Debian repo.
    4. Mount your shares using [this method](https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/post-555014) [[Archive Link]](https://web.archive.org/web/20250626194145/https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/page-3#post-555014)
  4. alimbada revised this gist Sep 10, 2025. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions SETUP.md
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,9 @@
    1. Create your LXC
    2. Follow step 2 [here](https://www.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/). [[Archive Link]](https://web.archive.org/web/20250910230721/https://old.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/) <br/>
    Note: Probably don't need to add group 44 (video) as Jellyfin (or more accurately, ffmpeg) uses the render group only (104).
    3. Instead of step 3 in the above post, install `libva2` from the Debian repo.
    3. **In LXC:** Instead of step 3 in the above post, install `libva2` from the Debian repo.
    4. Mount your shares using [this method](https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/post-555014) [[Archive Link]](https://web.archive.org/web/20250626194145/https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/page-3#post-555014)
    5. Docker Compose for Jellyfin:
    5. **In LXC:** Docker Compose for Jellyfin:
    ```
    services:
    jellyfin:
    @@ -32,6 +32,6 @@ services:
    healthcheck:
    test: curl -i http://jellyfin:8096/health
    ```
    6. Start the container and exec into it with bash: `docker exec -it jellyfin bash`
    7. Add the `render` group to `/etc/group`: `echo "render:x:104:abc" >> /etc/group`
    8. Restart the container: `docker compose restart jellyfin`
    6. **In LXC:** Start the Jellyfin Docker container and exec into it with bash: `docker exec -it jellyfin bash`
    7. **In Docker:** Add the `render` group to `/etc/group`: `echo "render:x:104:abc" >> /etc/group`
    8. **In LXC:** Restart the container: `docker compose restart jellyfin`
  5. alimbada revised this gist Sep 10, 2025. No changes.
  6. alimbada created this gist Sep 10, 2025.
    37 changes: 37 additions & 0 deletions SETUP.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    1. Create your LXC
    2. Follow step 2 [here](https://www.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/). [[Archive Link]](https://web.archive.org/web/20250910230721/https://old.reddit.com/r/Proxmox/comments/1lwsnjv/amd_apudgpu_proxmox_lxc_hw_transcoding_guide/) <br/>
    Note: Probably don't need to add group 44 (video) as Jellyfin (or more accurately, ffmpeg) uses the render group only (104).
    3. Instead of step 3 in the above post, install `libva2` from the Debian repo.
    4. Mount your shares using [this method](https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/post-555014) [[Archive Link]](https://web.archive.org/web/20250626194145/https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/page-3#post-555014)
    5. Docker Compose for Jellyfin:
    ```
    services:
    jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    group_add:
    - '104'
    - '44' # not sure if needed
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/London
    - JELLYFIN_PublishedServerUrl=jellyfin.example.com #optional
    volumes:
    - ~/.jellyfin/config:/config
    - ~/.jellyfin/cache:/cache
    - /mnt/media:/data/videos
    ports:
    - 8096:8096
    - 8920:8920 #optional
    - 7359:7359/udp #optional
    - 1900:1900/udp #optional
    devices:
    - /dev/dri/renderD128:/dev/dri/renderD128
    restart: unless-stopped
    healthcheck:
    test: curl -i http://jellyfin:8096/health
    ```
    6. Start the container and exec into it with bash: `docker exec -it jellyfin bash`
    7. Add the `render` group to `/etc/group`: `echo "render:x:104:abc" >> /etc/group`
    8. Restart the container: `docker compose restart jellyfin`