a89c7894cf
Backend: - FastAPI avec PostgreSQL et Redis - Authentification JWT complète - API REST pour musique, playlists, recherche - Streaming audio via yt-dlp - SQLAlchemy 2.0 async Frontend: - Flutter avec thème néon cyberpunk - State management Riverpod - Layout adaptatif desktop/mobile - Lecteur audio avec mini-player Infrastructure: - Docker Compose (PostgreSQL + Redis) - Scripts d'installation automatisés - Scripts de build pour exécutables Fichiers ajoutés: - BUILD_CLIENT_*.bat/sh: Scripts de compilation - BUILD_CLIENT_README.md: Documentation compilation - CHECK_FLUTTER.sh: Vérificateur d'environnement - requirements.txt mis à jour pour Python 3.13 - Modèles SQLAlchemy corrigés (metadata -> extra_metadata) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
115 lines
4.1 KiB
Bash
115 lines
4.1 KiB
Bash
# =============================================================================
|
|
# Spotify Le 2 - Environment Variables
|
|
# =============================================================================
|
|
# Copy this file to .env and fill in your values.
|
|
# DO NOT commit .env to version control.
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Application
|
|
# -----------------------------------------------------------------------------
|
|
APP_NAME="Spotify Le 2"
|
|
APP_VERSION="0.1.0"
|
|
DEBUG=true
|
|
API_V1_PREFIX="/api/v1"
|
|
|
|
# Server
|
|
HOST=0.0.0.0
|
|
PORT=8000
|
|
|
|
# CORS - Comma-separated list of allowed origins
|
|
BACKEND_CORS_ORIGINS=http://localhost:3000,http://localhost:8000
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Database (PostgreSQL)
|
|
# -----------------------------------------------------------------------------
|
|
POSTGRES_HOST=localhost
|
|
POSTGRES_PORT=5432
|
|
POSTGRES_USER=spotify
|
|
POSTGRES_PASSWORD=change_this_password_in_production
|
|
POSTGRES_DB=spotify_le_2
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Redis
|
|
# -----------------------------------------------------------------------------
|
|
REDIS_HOST=localhost
|
|
REDIS_PORT=6379
|
|
REDIS_PASSWORD=
|
|
REDIS_DB=0
|
|
# Alternative: Full Redis URL (overrides above if set)
|
|
# REDIS_URL=redis://:password@localhost:6379/0
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# JWT Security
|
|
# -----------------------------------------------------------------------------
|
|
# IMPORTANT: Change this to a strong random string in production!
|
|
SECRET_KEY=change-this-secret-key-in-production-use-openssl-rand-hex-32
|
|
ALGORITHM=HS256
|
|
ACCESS_TOKEN_EXPIRE_MINUTES=15
|
|
REFRESH_TOKEN_EXPIRE_DAYS=7
|
|
|
|
# Password hashing
|
|
PASSWORD_HASH_ALGORITHM=bcrypt
|
|
PASSWORD_HASH_ROUNDS=12
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Storage
|
|
# -----------------------------------------------------------------------------
|
|
STORAGE_PATH=./storage
|
|
AUDIO_CACHE_PATH=./storage/audio/cache
|
|
AUDIO_PERMANENT_PATH=./storage/audio/permanent
|
|
THUMBNAILS_PATH=./storage/thumbnails
|
|
MAX_CACHE_SIZE_GB=50
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# YouTube
|
|
# -----------------------------------------------------------------------------
|
|
# Get your API key from: https://console.cloud.google.com/
|
|
YOUTUBE_API_KEY=
|
|
YTDLP_PATH=yt-dlp
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Spotify (for playlist import)
|
|
# -----------------------------------------------------------------------------
|
|
# Get your credentials from: https://developer.spotify.com/dashboard
|
|
SPOTIFY_CLIENT_ID=
|
|
SPOTIFY_CLIENT_SECRET=
|
|
SPOTIFY_REDIRECT_URI=http://localhost:8000/api/v1/import/spotify/callback
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Last.fm (for metadata and recommendations)
|
|
# -----------------------------------------------------------------------------
|
|
# Get your API key from: https://www.last.fm/api/account/create
|
|
LASTFM_API_KEY=
|
|
LASTFM_SECRET=
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Rate Limiting
|
|
# -----------------------------------------------------------------------------
|
|
RATE_LIMIT_PER_MINUTE=100
|
|
RATE_LIMIT_BURST=200
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# File Upload
|
|
# -----------------------------------------------------------------------------
|
|
MAX_FILE_SIZE_MB=100
|
|
ALLOWED_AUDIO_TYPES=audio/mpeg,audio/ogg,audio/wav,audio/flac
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Audio Processing
|
|
# -----------------------------------------------------------------------------
|
|
FFMPEG_PATH=ffmpeg
|
|
AUDIO_QUALITY=high
|
|
BITRATE=320
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Logging
|
|
# -----------------------------------------------------------------------------
|
|
LOG_LEVEL=INFO
|
|
LOG_FILE_PATH=./logs
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Pagination
|
|
# -----------------------------------------------------------------------------
|
|
DEFAULT_PAGE_SIZE=20
|
|
MAX_PAGE_SIZE=100
|