# Quadlet unit: Jellyfin media server (rootless, boot-persistent). # # Install path on dankserver: ~/.config/containers/systemd/jellyfin.container # Unit name: jellyfin.service (podman 5.x drops the container- prefix) # # Data roots migrated from /opt/jellyfin to /home/dank/Containers/jellyfin at # cutover. The entropy volume is mounted read-only: nothing automated ever # writes there; copyparty is the only write path for /mnt/entropy. Every # creation-time environment variable of the compose-era container is kept as # an Environment= line (zero drift); none of them are secrets, so this unit # needs no EnvironmentFile. [Unit] Description=Jellyfin media server container After=network.target [Container] ContainerName=jellyfin Image=ghcr.io/jellyfin/jellyfin:latest Network=dankserver_appnet Environment=DEBIAN_FRONTEND=noninteractive Environment=DOTNET_SYSTEM_IO_DISABLEFILELOCKING=true Environment=JELLYFIN_CACHE_DIR=/cache Environment=JELLYFIN_CONFIG_DIR=/config/config Environment=JELLYFIN_DATA_DIR=/config Environment=JELLYFIN_FFMPEG=/usr/lib/jellyfin-ffmpeg/ffmpeg Environment=JELLYFIN_LOG_DIR=/config/log Environment=JELLYFIN_PublishedServerUrl=http://192.168.0.235:8096 Environment=JELLYFIN_WEB_DIR=/jellyfin/jellyfin-web Environment=LANG=en_US.UTF-8 Environment=LANGUAGE=en_US:en Environment=LC_ALL=en_US.UTF-8 Environment=LD_PRELOAD=/usr/lib/jellyfin/libjemalloc.so.2 Environment=MALLOC_TRIM_THRESHOLD_=131072 Environment=NVIDIA_DRIVER_CAPABILITIES=compute,video,utility Environment=NVIDIA_VISIBLE_DEVICES=all Environment=XDG_CACHE_HOME=/cache PublishPort=8096:8096 PublishPort=8920:8920 PublishPort=7359:7359/udp PublishPort=1900:1900/udp Volume=/home/dank/Containers/jellyfin/config:/config Volume=/home/dank/Containers/jellyfin/cache:/cache Volume=/mnt/entropy/Movies:/data/movies:ro Volume=/mnt/entropy/TVShows:/data/shows:ro Device=/dev/dri GroupAdd=keep-groups HealthCmd=curl -f http://localhost:8096/health HealthInterval=30s HealthTimeout=10s HealthRetries=3 [Service] Restart=always RestartSec=5 [Install] WantedBy=default.target