# Quizzical Beats - Environment Variables Example # Copy this file to .env and replace with your actual values # SECURITY NOTE: Never commit .env file to version control! # ============================================================================ # CRITICAL SECURITY SETTINGS - MUST BE SET # ============================================================================ # Secret key for Flask session management (REQUIRED) # Generate with: python -c 'import secrets; print(secrets.token_hex(32))' SECRET_KEY= # Automation token for API endpoints (REQUIRED) # Generate with: python -c 'import secrets; print(secrets.token_urlsafe(32))' AUTOMATION_TOKEN= # ============================================================================ # DEBUG SETTINGS # ============================================================================ # WARNING: Set DEBUG=False in production environments! DEBUG=False DEBUG2=False # ============================================================================ # DATABASE CONFIGURATION # ============================================================================ SQLALCHEMY_DATABASE_URI=sqlite:///data/song_data.db SQLALCHEMY_TRACK_MODIFICATIONS=False # ============================================================================ # HTTPS CONFIGURATION # ============================================================================ # Set to True when running behind a reverse proxy with HTTPS (e.g., Traefik, nginx) USE_HTTPS=False # PREFERRED_URL_SCHEME=https # ============================================================================ # SPOTIFY API CONFIGURATION (REQUIRED) # ============================================================================ # Get credentials from: https://developer.spotify.com/dashboard/applications SPOTIFY_CLIENT_ID= SPOTIFY_CLIENT_SECRET= SPOTIFY_REDIRECT_URI=http://localhost:5000/auth/spotify/callback # ============================================================================ # MUSIC METADATA APIs # ============================================================================ # Last.fm API for genre enrichment (REQUIRED) # Get from: https://www.last.fm/api/account/create LASTFM_API_KEY= # ============================================================================ # DEEZER API CONFIGURATION (OPTIONAL) # ============================================================================ # Get credentials from: https://developers.deezer.com/myapps DEEZER_APP_ID= DEEZER_APP_SECRET= DEEZER_REDIRECT_URI=http://localhost:5000/deezer-callback # ============================================================================ # OAUTH PROVIDERS (OPTIONAL) # ============================================================================ # Google OAuth GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # Authentik OAuth (self-hosted SSO) AUTHENTIK_CLIENT_ID= AUTHENTIK_CLIENT_SECRET= AUTHENTIK_METADATA_URL= # Dropbox OAuth (for cloud export) DROPBOX_APP_KEY= DROPBOX_APP_SECRET= DROPBOX_REDIRECT_URI=http://localhost:5000/users/dropbox/callback # ============================================================================ # AI SERVICES (OPTIONAL) # ============================================================================ # OpenAI API for quiz generation features OPENAI_API_KEY= OPENAI_URL=https://api.openai.com/v1 OPENAI_MODEL=gpt-4o-mini OPENAI_SEARCH_MODEL=gpt-4o-mini-search-preview # ElevenLabs API for voice generation ELEVENLABS_API_KEY= # Translation services (optional) DEEPL_API_KEY= MEANINGCLOUD_API_KEY= # ACRCloud for audio fingerprinting (optional) ACRCLOUD_TOKEN= # ============================================================================ # EMAIL CONFIGURATION (OPTIONAL) # ============================================================================ MAIL_HOST=smtp.example.com MAIL_PORT=587 MAIL_USE_TLS=True MAIL_USE_SSL=False MAIL_USERNAME= MAIL_PASSWORD= MAIL_SENDER=quizzical-beats@example.com MAIL_RECIPIENT=admin@example.com # ============================================================================ # ADVANCED CONFIGURATION (OPTIONAL) # ============================================================================ # Static OAuth URLs for production (when behind complex reverse proxies) # STATIC_OAUTH_URLS=False # OAUTH_SPOTIFY_AUTH_URL= # OAUTH_SPOTIFY_LINK_URL= # OAUTH_GOOGLE_URL= # OAUTH_AUTHENTIK_URL= # OAUTH_DROPBOX_URL=