Spaces:
Sleeping
Sleeping
| # ============================================================================= | |
| # FICHIER DE CONFIGURATION ENVIRONNEMENT - PROJECT5 | |
| # ============================================================================= | |
| # Copiez ce fichier vers .env et modifiez les valeurs selon vos besoins | |
| # ATTENTION: Ne commitez jamais le fichier .env (il contient des secrets) | |
| # ============================================================================= | |
| # CONFIGURATION DE L'APPLICATION | |
| # ============================================================================= | |
| APP_NAME=Project5 API | |
| VERSION=0.1.0 | |
| ENVIRONMENT=development | |
| DEBUG=true | |
| # Host et port pour le serveur | |
| HOST=0.0.0.0 | |
| PORT=8000 | |
| # ============================================================================= | |
| # SÉCURITÉ - CHANGEZ CES VALEURS EN PRODUCTION ! | |
| # ============================================================================= | |
| # Clé secrète pour JWT et sessions (génération: openssl rand -hex 32) | |
| SECRET_KEY=votre-cle-secrete-super-longue-et-complexe-changez-moi-en-production-123456789abcdef | |
| # Algorithme de hachage pour JWT | |
| ALGORITHM=HS256 | |
| # Durée de validité des tokens (en minutes) | |
| ACCESS_TOKEN_EXPIRE_MINUTES=30 | |
| # Clé pour le refresh token (optionnel) | |
| REFRESH_TOKEN_EXPIRE_DAYS=7 | |
| # ============================================================================= | |
| # BASE DE DONNÉES - POSTGRESQL | |
| # ============================================================================= | |
| # URL complète de la base de données PostgreSQL | |
| DATABASE_URL=postgresql://project5_user:project5_password@localhost:5432/project5_db | |
| # Paramètres séparés (utilisés par Docker Compose) | |
| POSTGRES_HOST=localhost | |
| POSTGRES_PORT=5432 | |
| POSTGRES_DB=project5_db | |
| POSTGRES_USER=project5_user | |
| POSTGRES_PASSWORD=project5_password | |
| # Configuration SQLAlchemy | |
| SQLALCHEMY_ECHO=false | |
| SQLALCHEMY_POOL_SIZE=5 | |
| SQLALCHEMY_MAX_OVERFLOW=10 | |
| SQLALCHEMY_POOL_PRE_PING=true | |
| SQLALCHEMY_POOL_RECYCLE=300 | |
| # ============================================================================= | |
| # BASE DE DONNÉES DE TEST - SQLITE | |
| # ============================================================================= | |
| # Utilisée pour les tests unitaires (plus rapide que PostgreSQL) | |
| TEST_DATABASE_URL=sqlite:///./test_project5.db | |
| # ============================================================================= | |
| # LOGGING | |
| # ============================================================================= | |
| LOG_LEVEL=INFO | |
| LOG_FORMAT=%(asctime)s - %(name)s - %(levelname)s - %(message)s | |
| LOG_FILE=logs/project5.log | |
| LOG_MAX_SIZE=10MB | |
| LOG_BACKUP_COUNT=5 | |
| # ============================================================================= | |
| # CORS - Configuration des domaines autorisés | |
| # ============================================================================= | |
| # Domaines autorisés pour les requêtes CORS (séparés par des virgules) | |
| ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080,http://127.0.0.1:3000 | |
| ALLOWED_METHODS=GET,POST,PUT,DELETE,PATCH,OPTIONS | |
| ALLOWED_HEADERS=* | |
| # ============================================================================= | |
| # REDIS - Cache et sessions (optionnel) | |
| # ============================================================================= | |
| # REDIS_URL=redis://localhost:6379/0 | |
| # REDIS_HOST=localhost | |
| # REDIS_PORT=6379 | |
| # REDIS_DB=0 | |
| # REDIS_PASSWORD= | |
| # REDIS_EXPIRE_TIME=3600 | |
| # ============================================================================= | |
| # EMAIL - Configuration SMTP (optionnel) | |
| # ============================================================================= | |
| # SMTP_HOST=smtp.gmail.com | |
| # SMTP_PORT=587 | |
| # SMTP_USER=votre.email@gmail.com | |
| # SMTP_PASSWORD=votre-mot-de-passe-app | |
| # SMTP_TLS=true | |
| # SMTP_FROM_EMAIL=noreply@project5.com | |
| # SMTP_FROM_NAME=Project5 API | |
| # ============================================================================= | |
| # STOCKAGE DE FICHIERS (optionnel) | |
| # ============================================================================= | |
| # Répertoire local pour les uploads | |
| # UPLOAD_DIRECTORY=uploads | |
| # MAX_FILE_SIZE=10MB | |
| # ALLOWED_FILE_EXTENSIONS=jpg,jpeg,png,gif,pdf,doc,docx | |
| # Configuration AWS S3 (optionnel) | |
| # AWS_ACCESS_KEY_ID=votre-access-key | |
| # AWS_SECRET_ACCESS_KEY=votre-secret-key | |
| # AWS_BUCKET_NAME=votre-bucket | |
| # AWS_REGION=eu-west-1 | |
| # ============================================================================= | |
| # MONITORING ET OBSERVABILITÉ (optionnel) | |
| # ============================================================================= | |
| # Sentry pour le monitoring d'erreurs | |
| # SENTRY_DSN=https://votre-sentry-dsn@sentry.io/project-id | |
| # Prometheus metrics | |
| # ENABLE_METRICS=false | |
| # METRICS_PORT=9090 | |
| # ============================================================================= | |
| # RATE LIMITING (optionnel) | |
| # ============================================================================= | |
| # RATE_LIMIT_REQUESTS=100 | |
| # RATE_LIMIT_WINDOW=3600 | |
| # RATE_LIMIT_STORAGE=memory | |
| # ============================================================================= | |
| # CONFIGURATION DOCKER COMPOSE | |
| # ============================================================================= | |
| # Variables utilisées par docker-compose.yml | |
| COMPOSE_PROJECT_NAME=project5 | |
| COMPOSE_FILE=docker-compose.yml | |
| # Ports exposés | |
| API_PORT=8000 | |
| DB_PORT=5432 | |
| # ============================================================================= | |
| # DÉVELOPPEMENT LOCAL | |
| # ============================================================================= | |
| # Rechargement automatique en développement | |
| AUTO_RELOAD=true | |
| # Affichage détaillé des requêtes SQL | |
| SQL_DEBUG=false | |
| # Mode de développement pour FastAPI | |
| FASTAPI_DEBUG=true | |
| FASTAPI_RELOAD=true | |
| # ============================================================================= | |
| # TESTS | |
| # ============================================================================= | |
| # Configuration spécifique aux tests | |
| TESTING=false | |
| TEST_LOG_LEVEL=WARNING | |
| # Base de données de test séparée | |
| TEST_POSTGRES_DB=project5_test_db | |
| TEST_POSTGRES_USER=project5_test_user | |
| TEST_POSTGRES_PASSWORD=project5_test_password | |
| # ============================================================================= | |
| # PRODUCTION - Variables critiques à définir | |
| # ============================================================================= | |
| # En production, assurez-vous de définir: | |
| # - SECRET_KEY (généré de manière sécurisée) | |
| # - DATABASE_URL (avec les vrais credentials) | |
| # - ALLOWED_ORIGINS (domaines de production) | |
| # - ENVIRONMENT=production | |
| # - DEBUG=false | |
| # - LOG_LEVEL=WARNING ou ERROR | |
| # ============================================================================= | |
| # NOTES D'UTILISATION | |
| # ============================================================================= | |
| # 1. Copiez ce fichier: cp .env.example .env | |
| # 2. Modifiez les valeurs dans .env selon vos besoins | |
| # 3. Le fichier .env ne doit JAMAIS être commité dans Git | |
| # 4. Utilisez des valeurs différentes pour dev/test/production | |
| # 5. Générez des clés secrètes fortes pour la production | |
| # | |
| # Génération de SECRET_KEY sécurisée: | |
| # python -c "import secrets; print(secrets.token_urlsafe(32))" | |
| # ou | |
| # openssl rand -base64 32 |