# MusicAnalyser Docker Compose Template # Copy this file to docker-compose.yml and fill in your values # Or use environment variables / .env file version: '3.8' services: backend: build: context: ./backend image: ghcr.io/bnair123/musicanalyser:latest container_name: music-analyser-backend restart: unless-stopped volumes: - music_data:/app/data environment: - DATABASE_URL=sqlite:////app/data/music.db # Required: Spotify API credentials - SPOTIFY_CLIENT_ID=your_spotify_client_id_here - SPOTIFY_CLIENT_SECRET=your_spotify_client_secret_here - SPOTIFY_REFRESH_TOKEN=your_spotify_refresh_token_here # Required: AI API key (choose one) - OPENAI_API_KEY=your_openai_api_key_here # OR - GEMINI_API_KEY=your_gemini_api_key_here # Optional: Genius for lyrics - GENIUS_ACCESS_TOKEN=your_genius_token_here # Optional: Spotify Playlist IDs (will be created if not provided) - SIX_HOUR_PLAYLIST_ID=your_playlist_id_here - DAILY_PLAYLIST_ID=your_playlist_id_here ports: - '8000:8000' networks: - dockernet healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/snapshots?limit=1"] interval: 30s timeout: 10s retries: 3 start_period: 60s frontend: build: context: ./frontend image: ghcr.io/bnair123/musicanalyser-frontend:latest container_name: music-analyser-frontend restart: unless-stopped ports: - '8991:80' networks: - dockernet depends_on: backend: condition: service_healthy volumes: music_data: driver: local networks: dockernet: external: true # If you don't have an external dockernet, create it with: # docker network create dockernet # Or change to: # dockernet: # driver: bridge