version: '3.8' services: soulsync: build: . container_name: soulsync-webui ports: - "8008:8008" # Main web app - "8888:8888" # Spotify OAuth callback - "8889:8889" # Tidal OAuth callback volumes: # Persistent data volumes - ./config:/app/config - ./database:/app/database - ./logs:/app/logs # Soulseek download and transfer directories (mapped to host E: drive paths) - /mnt/e/Broque Projects/newMusic/downloads:/app/downloads - /mnt/e/Broque Projects/newMusic/transfer:/app/transfer # Stream folder for temporary playback files - /mnt/e/Broque Projects/newMusic/stream:/app/stream # Optional: Mount your music library for Plex/Jellyfin access - /path/to/your/music:/music:ro environment: # Web server configuration - FLASK_ENV=production - PYTHONPATH=/app # Optional: Configure through environment variables - SOULSYNC_CONFIG_PATH=/app/config/config.json # Set timezone - TZ=America/New_York extra_hosts: # Allow container to reach host services - "host.docker.internal:host-gateway" restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8888/"] interval: 30s timeout: 10s retries: 3 start_period: 60s # Resource limits (adjust as needed) deploy: resources: limits: cpus: '2.0' memory: 2G reservations: cpus: '0.5' memory: 512M # Optional: Add external network for communication with other containers networks: default: name: soulsync-network