Files
manga-mover-and-metadata-co…/docker-compose.prod.yml
T
2026-06-16 18:46:17 +02:00

58 lines
2.8 KiB
YAML

services:
# ------------------------------------------------------------------
# Manga: Suwayomi -> Kavita mover + metadata enrichment
# ------------------------------------------------------------------
manga-mover-and-metadata-collector:
image: gitea.johannesbot.de/johannesbot/manga-mover-and-metadata-collector:latest
container_name: manga-mover-and-metadata-collector
restart: unless-stopped
environment:
KAVITA_URL: "${KAVITA_URL}"
KAVITA_API_KEY: "${KAVITA_API_KEY}"
LANGUAGE: "${LANGUAGE:-en}"
SETTLE_SECONDS: "${SETTLE_SECONDS:-600}"
DELETE_SOURCE: "${DELETE_SOURCE:-true}"
MATCH_PATH: "/config/matches.json"
# Periodic updaters (volume/cover back-fill + global person sync) run
# together on this cron. "0 10 * * 0" = Sundays 10:00 (local time, see TZ)
UPDATER_ENABLED: "${UPDATER_ENABLED:-true}"
UPDATER_SCHEDULE: "${UPDATER_SCHEDULE:-0 10 * * 0}"
UPDATER_LOG: "/config/volume_updater.log"
# Persistent cover cache (empty = temp dir, deleted on container stop)
COVER_CACHE_PATH: "${COVER_CACHE_PATH:-/config/covers}"
# Per-step timing stats (viewable at /perf, /perf/volume, /perf/person)
PERF_PATH: "${PERF_PATH:-/config/perf_stats.json}"
VOLUME_PERF_PATH: "${VOLUME_PERF_PATH:-/config/volume_perf_stats.json}"
PERSON_PERF_PATH: "${PERSON_PERF_PATH:-/config/person_perf_stats.json}"
# Timezone for the cron schedule — without this 10:00 means 10:00 UTC
TZ: "${TZ:-Europe/Berlin}"
ports:
- "${MANGA_WEB_PORT:-8080}:8080"
volumes:
- "${HOST_SUWAYOMI_PATH}:/mnt/suwayomi"
- "${HOST_KAVITA_PATH}:/mnt/kavita"
- "${HOST_MANGA_CONFIG_PATH}:/config"
# ------------------------------------------------------------------
# Light novels: Kavita metadata fetcher (HTTP only, no file mover)
# ------------------------------------------------------------------
kavita-lightnovel-metadata-fetcher:
image: gitea.johannesbot.de/johannesbot/kavita-lightnovel-metadata-fetcher:latest
container_name: kavita-lightnovel-metadata-fetcher
restart: unless-stopped
environment:
KAVITA_URL: "${KAVITA_URL}"
KAVITA_API_KEY: "${KAVITA_API_KEY}"
LIBRARY_IDS: "${LN_LIBRARY_IDS}"
LANGUAGE: "${LANGUAGE:-en}"
MATCH_PATH: "/config/matches.json"
# Global person sync on cron (same default cadence as the manga side)
UPDATER_ENABLED: "${LN_UPDATER_ENABLED:-true}"
UPDATER_SCHEDULE: "${UPDATER_SCHEDULE:-0 10 * * 0}"
PERSON_PERF_PATH: "${PERSON_PERF_PATH:-/config/person_perf_stats.json}"
TZ: "${TZ:-Europe/Berlin}"
ports:
- "${LN_WEB_PORT:-8081}:8080"
volumes:
- "${HOST_LN_CONFIG_PATH}:/config"