services: homelabtoolkit-db: image: postgres:16-alpine container_name: homelabtoolkit-db environment: - POSTGRES_DB=homelabtoolkit - POSTGRES_USER=homelabtoolkit - POSTGRES_PASSWORD=homelabtoolkit volumes: - homelabtoolkit_postgres:/var/lib/postgresql/data restart: unless-stopped networks: - npm_network homelabtoolkit: build: . container_name: homelabtoolkit depends_on: - homelabtoolkit-db ports: - "8500:8500" environment: - TZ=Pacific/Auckland - DATABASE_URL=postgresql://homelabtoolkit:homelabtoolkit@homelabtoolkit-db:5432/homelabtoolkit # Emby - EMBY_URL=http://10.0.0.2:8096 - EMBY_API_KEY=b9af54b630f6448289ab96422add567a # Navidrome (Subsonic API) - NAVIDROME_URL=http://10.0.0.2:4533 - NAVIDROME_USER= - NAVIDROME_PASSWORD= # Music library root (for the Cover Manager). Mount the share below to match. - MUSIC_ROOT=/music # Optional weekly Emby preroll rotation task: - PREROLL_ENABLED=false - PREROLL_ACTIVE_DIR=/media/Prerolls - PREROLL_INACTIVE_DIR=/media/Prerolls - Not Active - PREROLL_STATE_FILE=/app/cache/preroll-state.json - PREROLL_WEEKDAY=0 - PREROLL_TIME=02:00 # On-disk cache bounds (keeps the container lean; all cache is regenerable): - CACHE_MAX_MB=512 - CACHE_MAX_AGE_DAYS=14 - CACHE_SWEEP_INTERVAL_MIN=60 # Optional external artwork providers: # - TMDB_BEARER_TOKEN= # - TMDB_API_KEY= # - GOOGLE_CUSTOM_SEARCH_API_KEY= # - GOOGLE_CUSTOM_SEARCH_ENGINE_ID= volumes: - /share/Docker/homelabtoolkit/output:/app/output - /share/Docker/homelabtoolkit/cache:/app/cache # Mount your music library so the Cover Manager can scan/maintain it: - /share/Music:/music # Mount preroll folders if you want the weekly rotation task to manage them: # - /share/Media/Prerolls:/media/Prerolls # - /share/Media/Prerolls - Not Active:/media/Prerolls - Not Active restart: unless-stopped # Lean resource ceiling. Raise if you process very large Emby backdrops. mem_limit: 768m networks: - npm_network networks: npm_network: external: true volumes: homelabtoolkit_postgres: