Add RAID_REFRESH_SECONDS/IO_REFRESH_SECONDS/GPU_REFRESH_SECONDS environment variables with default 5 seconds and minimum 2 seconds. Add graphics_cache_lock and graphics_cache global for thread-safe GPU data access. Add io/io_at fields to datastore_cache. Extract refresh_io_status() to update I/O pressure cache. Add refresh_gpu_status() to update graphics_cache. Implement hardware
48 lines
1.6 KiB
YAML
48 lines
1.6 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}
|
|
RAID_REFRESH_SECONDS: ${RAID_REFRESH_SECONDS:-5}
|
|
IO_REFRESH_SECONDS: ${IO_REFRESH_SECONDS:-5}
|
|
GPU_REFRESH_SECONDS: ${GPU_REFRESH_SECONDS:-5}
|
|
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
|