# ───────────────────────────────────────────────────────────────────────────── # Tuvima Library — Docker Compose # # Quick start: # 1. Edit the volume paths under "volumes:" to match your NAS folder layout. # 2. docker compose up -d # 3. Open http://:5016 in your browser. # # Unraid users: import docker-compose.yml into the Compose manager, or use the # Community Applications template (see unraid-template.xml in this repo). # ───────────────────────────────────────────────────────────────────────────── services: tuvima: image: ghcr.io/tuvima/tuvima-library:latest # Uncomment to build locally instead of pulling the published image: # build: . container_name: tuvima-library restart: unless-stopped ports: - "5016:5016" # Dashboard — open this in your browser healthcheck: test: ["CMD-SHELL", "curl --fail --silent http://127.0.0.1:61495/health/live >/dev/null && curl --fail --silent http://127.0.0.1:5016/health/live >/dev/null"] interval: 30s timeout: 10s start_period: 120s retries: 3 volumes: # ── EDIT THESE PATHS to match your NAS/server layout ───────────────── # Library root: the Engine organises your files into this folder. - /mnt/user/media/tuvima-library:/library # Config: stores your settings (survives container image updates). - /mnt/user/appdata/tuvima/config:/config # Database: the SQLite catalogue (survives container image updates). - /mnt/user/appdata/tuvima/db:/db # Models: AI model files (downloaded on first run, ~4GB). - /mnt/user/appdata/tuvima/models:/models # Artwork and generated cache: managed images, thumbnails and logs. - /mnt/user/appdata/tuvima/artwork-cache:/artwork-cache # Backups: SQLite/config archives and restore staging. - /mnt/user/appdata/tuvima/backups:/backups # Transcoding: generated playback variants and temporary workspace. - /mnt/user/appdata/tuvima/transcode:/transcode environment: # Runtime state locations. Library paths are defined in the # first-run /config/libraries.json template and remain user-editable. TUVIMA_CONFIG_DIR: /config TUVIMA_DB_PATH: /db/library.db TUVIMA_MODELS_DIR: /models TUVIMA_AI_RUNTIME_DIR: bundled TUVIMA_BACKUP_DIR: /backups # The application can now explain that the visible gateway belongs to # Docker's bridge rather than attempting PCP/NAT-PMP/UPnP against it. TUVIMA_CONTAINER_NETWORK_MODE: bridge # Application processes run with this NAS identity. Match the owner/group # of the bind-mounted folders above. 0002 keeps new files group-writable. TUVIMA_UID: "1000" TUVIMA_GID: "1000" TUVIMA_UMASK: "0002" # IANA timezone used for local timestamps and schedules. # Examples: America/Chicago, Europe/London, Australia/Sydney. TZ: "Etc/UTC" # Replace with your server's actual LAN IP so external devices can # reach the Dashboard. localhost works only from the same machine. # Example: TUVIMA_CORS_ORIGINS: "http://192.168.1.50:5016" # TUVIMA_CORS_ORIGINS: "" # Advanced internal Engine address override. Port 61495 is intentionally # not published to the host by the default deployment. # TUVIMA_ENGINE_URL: "http://127.0.0.1:61495" # Resource limits (optional — recommended for Unraid/NAS boxes). # Adjust to suit your hardware. # deploy: # resources: # limits: # memory: 2G # cpus: "2.0" # ── (Optional) Watchtower: keeps the Tuvima image automatically up-to-date ── # watchtower: # image: containrrr/watchtower # volumes: # - /var/run/docker.sock:/var/run/docker.sock # command: --interval 86400 --cleanup tuvima-library