version: "3.9" services: backend-girlfriend: build: context: ./server environment: # Spotify API Configuration - SPOTIFY_CLIENT_ID=${SPOTIFY_CLIENT_ID} - SPOTIFY_CLIENT_SECRET=${SPOTIFY_CLIENT_SECRET} - JELLYFIN_URL=${JELLYFIN_URL} - JELLYFIN_API_KEY=${JELLYFIN_API_KEY} - CLIENT_ID=5f573c9620494bae87890c0f08a60293 - CLIENT_SECRET=212476d9b0f3472eaa762d90b19b0ba8 # Server Configuration - PORT=5145 # Different port to avoid conflicts - HOST=0.0.0.0 - PYTHONUNBUFFERED=1 - FLASK_ENV=production # Download Paths (separate directory for girlfriend) - TRACK_OUTPUT='/data/girlfriend/{artist}/{album} - ({year})/{artist} - {title}.{output-ext}' - ALBUM_OUTPUT='/data/girlfriend/{artist}/{album} - ({year})/{artist} - {title}.{output-ext}' - PLAYLIST_OUTPUT='/data/girlfriend/{list-name}/{artist}/{title}.{output-ext}' - ARTIST_OUTPUT='/data/girlfriend/{artist}/{album} - ({year})/{artist} - {title}.{output-ext}' # Jellyfin Integration - TRIGGER_JELLYFIN_SCAN=True # Playlist Configuration (separate playlist) - GENERATE_M3U_PLAYLIST=True - M3U_PLAYLIST_NAME=girlfriend_test_playlist - M3U_PLAYLIST_PATH=/music/girlfriend/playlists - ABSOLUTE_SERVER_PATH=/music/girlfriend # Logging - EXTRA_LOGGING=True volumes: - /Volumes/Jellyfin Media/Music:/music # Final music files - /Volumes/Jellyfin Media/Music/temp:/temp # Temporary files - ./server:/app - temp_data_girlfriend:/temp - /etc/localtime:/etc/localtime:ro # Sync time with host ports: - "5145:5145" # Different port to avoid conflicts restart: unless-stopped networks: - app-network # Resource limits mem_limit: 1g cpus: 1.0 # Health check healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5145/status"] interval: 30s timeout: 10s retries: 3 start_period: 60s ui-girlfriend: image: node:20 working_dir: /app environment: # Development URLs - use localhost so browser can reach backend - VITE_SERVER_URL=http://localhost:5146 - VITE_BACKEND_URL=http://localhost:5145 # Point to girlfriend's backend # Production URLs for live site - VITE_BACKEND_URL_PROD=https://music.samcloud.ca - VITE_FRONTEND_URL_PROD=https://music.samcloud.ca # Build configuration - NODE_ENV=development volumes: - ./:/app ports: - "5146:5146" # Different port for UI command: sh -c "yarn install && yarn dev -- --host 0.0.0.0 --port 5146" restart: unless-stopped depends_on: - backend-girlfriend networks: - app-network networks: app-network: driver: bridge volumes: temp_data_girlfriend: