Files
MusicAnalyser/docker-compose.template.yml
bnair123 93e7c13f3d feat: implement AI-curated playlist service and dashboard integration
- Added hierarchical AGENTS.md knowledge base
- Implemented PlaylistService with 6h themed and 24h devotion mix logic
- Integrated AI theme generation for 6h playlists via Gemini/OpenAI
- Added /playlists/refresh and metadata endpoints to API
- Updated background worker with scheduled playlist curation
- Created frontend PlaylistsSection, Tooltip components and integrated into Dashboard
- Added Alembic migration for playlist tracking columns
- Fixed Docker healthcheck with curl installation
2025-12-30 09:45:19 +04:00

68 lines
1.8 KiB
YAML

# 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