# Lidify - Premium Self-Hosted Music Server
# All-in-One container with AI-powered vibe matching
#
# Features included:
#   - Smart playlists with mood detection
#   - Enhanced vibe matching (Essentia AI)
#   - High-quality audio streaming
#
# Usage:
#   1. Edit the MUSIC_PATH below
#   2. Run: docker compose -f docker-compose.prod.yml up -d
#   3. Open http://localhost:3030

services:
  lidify:
    image: ${DOCKERHUB_USERNAME:-chevron7locked}/lidify:${VERSION:-latest}
    container_name: lidify
    ports:
      - "${PORT:-3030}:3030"
    volumes:
      # REQUIRED: Path to your music library
      - ${MUSIC_PATH:-/path/to/your/music}:/music
      # Persistent data (database, cache, etc.)
      - lidify_data:/data
    environment:
      - TZ=${TZ:-UTC}
      - SESSION_SECRET=${SESSION_SECRET:-}
      # Lidarr webhook callback URL - how Lidarr reaches Lidify when downloads complete
      # Default uses host.docker.internal which works on most setups with extra_hosts below
      # Override if using custom Docker networks: e.g., http://192.168.0.20:3030
      - LIDIFY_CALLBACK_URL=${LIDIFY_CALLBACK_URL:-http://host.docker.internal:3030}
    # Makes host.docker.internal work on Linux (already works on Docker Desktop)
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "node", "/app/healthcheck.js"]
      interval: 30s
      timeout: 10s
      start_period: 60s
      retries: 3

volumes:
  lidify_data:
