Spaces:
Sleeping
Sleeping
File size: 7,064 Bytes
66a0674 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | # =============================================================================
# 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 |