Skip to content

Instantly share code, notes, and snippets.

@sennahoj0
Forked from piyoki/qnap_emby_nvidia.md
Last active June 6, 2024 09:12
Show Gist options
  • Save sennahoj0/9dc14617559a8a4df8a14eb194e7ba23 to your computer and use it in GitHub Desktop.
Save sennahoj0/9dc14617559a8a4df8a14eb194e7ba23 to your computer and use it in GitHub Desktop.
Some hacks around using NVIDIA GPU for Jellyfin Container with QNAP

Hacks

Some hacks around using NVIDIA GPU for Jellyfin Container with QNAP

Make sure you have NVIDIA driver installed already

Check NVIDIA Driver Path

find /share/ -name "NVIDIA_GPU_DRV"
# /share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV

Install Portainer (Recommended)

mkdir -p /share/Container/portainer
docker run -d --restart=unless-stopped -p 9999:9000 -v /var/run/docker.sock:/var/run/docker.sock --name portainer-ce -v /share/Container/portainer:/data portainer/portainer-ce:latest

Prep

mkdir /share/Container/jellyfin
mkdir -p /share/Container/jellyfin/overlay/upper
mkdir -p /share/Container/jellyfin/overlay/work
# docker-compose.yml
---
version: "3.4"

volumes:
  jellyfin_usr:
    driver: local
    driver_opts:
      type: overlay
      device: overlay
      # modify the nvidia driver path based on your own case
      o: lowerdir=/share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV/usr,upperdir=/share/Container/jellyfin/overlay/upper,workdir=/share/Container/jellyfin/overlay/work

services:
  jellyfin-nvidia-init:
    image: linuxserver/jellyfin:latest
    container_name: jellyfin-prep
    environment:
      - PUID=3001       # Change these values as necessary for your own containers
      - PGID=100
      - UMASK=022
      - TZ=Europe/Vienna
    labels:
      - wud.watch=false
    volumes:
      - jellyfin_usr:/jellyfin_usr
      - /share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV/usr/:/nvidia:ro
    entrypoint: /bin/bash -x -c "cp -Rv /usr/* /jellyfin_usr/"
    restart: "no" # only needs to run once
    
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    networks:
      - jellyfin-internal
    environment:
      - PUID=3001
      - PGID=3001
      - TZ=Europe/Vienna
    volumes:
      - jellyfin_usr:/usr
      - /share/Container/jellyfin:/config
      - /share/DATA/Movies:/data/Movies
      - /share/DATA/Shows:/data/Shows
    ports:
      - 8096:8096
    devices:
      - /dev/nvidia0      # optional
      - /dev/nvidiactl    # optional
      - /dev/nvidia-uvm   # optional
    restart: always
    
networks:
  jellyfin-internal:
    name: jellyfin-internal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment