services: jellyfin: # PINNED to the 12.0.0 unstable build that migrated the DB to the v12 # schema (DropExtraIdsColumn) — :latest is still 10.11.x and CANNOT read # this DB ("no such column: b.ExtraIds"). Do not unpin until official # stable >= 12 ships. (2026-07-14: a :latest deploy downgraded it and # broke Resume/home sections; repinned.) image: jellyfin/jellyfin:2026060106 container_name: jellyfin restart: unless-stopped environment: - PUID=1000 - PGID=1000 - LIBVA_DRIVER_NAME=i965 # Haswell HD 4600 uses legacy i965 (iHD is Broadwell+) volumes: # LOCAL disk, not NFS: jellyfin.db (SQLite WAL) on NFS caused 60-100s # "database is locked" stalls -> server lockups during playback # (2026-07-19). Old copy left at /mnt/docker-data/configs/jellyfin. - /var/lib/jellyfin:/config - /mnt/nas-media:/media ports: - "8096:8096" devices: - /dev/dri:/dev/dri # Intel iGPU for VAAPI hardware transcoding group_add: - "993" # render - "44" # video mem_limit: 2G healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8096/health || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 60s logging: driver: "json-file" options: max-size: "50m" max-file: "3" sonarr: image: linuxserver/sonarr:latest container_name: sonarr restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=America/Chicago volumes: # LOCAL disk, not NFS: SQLite-on-NFS locking crashed Sonarr's DB migration # after the 2026-07-12 power event ("waiting for user intervention") - /var/lib/sonarr:/config - /mnt/nas-media:/media ports: - "8989:8989" mem_limit: 512M healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8989/ping || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s logging: driver: "json-file" options: max-size: "50m" max-file: "3" radarr: image: linuxserver/radarr:latest container_name: radarr restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=America/Chicago volumes: - /mnt/docker-data/configs/radarr:/config - /mnt/nas-media:/media ports: - "7878:7878" mem_limit: 512M healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:7878/ping || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s logging: driver: "json-file" options: max-size: "50m" max-file: "3" sabnzbd: image: linuxserver/sabnzbd:latest container_name: sabnzbd restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=America/Chicago volumes: - /mnt/docker-data/configs/sabnzbd:/config - /mnt/nas-media:/media ports: - "8082:8080" mem_limit: 1G healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8080/api?mode=version || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s logging: driver: "json-file" options: max-size: "50m" max-file: "3" nzbhydra2: image: linuxserver/nzbhydra2:latest container_name: nzbhydra2 restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=America/Chicago volumes: # LOCAL disk, not NFS: stale NFS lock on the H2 database after the # 2026-07-12 power event kept hydra unhealthy in a DB-retry loop - /var/lib/nzbhydra:/config ports: - "5076:5076" mem_limit: 1G healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:5076/ || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 90s logging: driver: "json-file" options: max-size: "50m" max-file: "3" jellyseerr: image: fallenbagel/jellyseerr:latest container_name: jellyseerr restart: unless-stopped environment: - TZ=America/Chicago volumes: - /mnt/docker-data/configs/jellyseerr:/app/config ports: - "5055:5055" mem_limit: 512M healthcheck: test: ["CMD-SHELL", "wget -q --spider http://localhost:5055/api/v1/status || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 90s logging: driver: "json-file" options: max-size: "50m" max-file: "3"