Files
language-dashboard/docker-compose.yml
T
nessi 952797005f feat: add background library sync thread with configurable interval to eliminate browser dependency for automatic scanning
Add SYNC_INTERVAL_SECONDS environment variable with default 1800 (30 minutes). Add library_cache global dict with rows/series/updated_at/error/ready fields and library_cache_lock for thread-safe access. Extract refresh_library_cache() function to update Radarr/Sonarr data with error handling that preserves last good snapshot during outages. Add background_library_sync() daemon
2026-08-25 20:11:38 +02:00

45 lines
1.5 KiB
YAML

services:
media-max:
build: .
container_name: media-max
restart: unless-stopped
gpus: all
ports:
- "8099:8099"
devices:
- "${RAID_DEVICE:-/dev/md127}:${RAID_DEVICE:-/dev/md127}"
cap_add:
- SYS_RAWIO
device_cgroup_rules:
- "b 8:* rwm"
- "b 9:* rwm"
extra_hosts:
- "host.docker.internal:host-gateway"
env_file:
- .env
environment:
NVIDIA_VISIBLE_DEVICES: ${NVIDIA_VISIBLE_DEVICES:-all}
NVIDIA_DRIVER_CAPABILITIES: ${NVIDIA_DRIVER_CAPABILITIES:-compute,utility}
# Serverseitiger Bibliotheks-Sync; 1800 = alle 30 Minuten, 0 = nur beim Start.
SYNC_INTERVAL_SECONDS: ${SYNC_INTERVAL_SECONDS:-1800}
volumes:
# Host-Pfad deiner Film-Library -> interner Dashboard-Pfad
- ${FILM_MEDIA_VOLUME}:/media/filme:ro
# Falls Sonarr verwendet wird, muss SERIES_MEDIA_VOLUME auf die Serien-Library zeigen.
- ${SERIES_MEDIA_VOLUME:-/nesflix/serien}:/media/serien:ro
# Read-only Datastore für Größen-/Kategorie-Scans.
- ${DATASTORE_HOST_PATH:-/nesflix}:/nesflix:ro
# Read-only Host-Devices für lsblk/smartctl; Media Max führt keine RAID-Schreiboperationen aus.
- /dev:/host-dev:ro
# Read-only Hardware-Metadaten für Seriennummern und SMART-Zuordnung.
- /sys:/host-sys:ro
- /run/udev:/host-run-udev:ro
- ./data:/data
networks:
- media
networks:
media:
external: true
name: media-stack_default