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 - SPOTIFY_CLIENT_ID=${SPOTIFY_CLIENT_ID} - SPOTIFY_CLIENT_SECRET=${SPOTIFY_CLIENT_SECRET} - SPOTIFY_REFRESH_TOKEN=${SPOTIFY_REFRESH_TOKEN} - GEMINI_API_KEY=${GEMINI_API_KEY} - GENIUS_ACCESS_TOKEN=${GENIUS_ACCESS_TOKEN} - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_APIKEY=${OPENAI_APIKEY} 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