# ============================================================================= # BTP XPRESS SERVER - CONFIGURATION ENVIRONNEMENT # ============================================================================= # Copiez ce fichier vers .env et configurez les valeurs selon votre environnement # ============================================================================= # SÉCURITÉ JWT (OBLIGATOIRE) # ============================================================================= # ATTENTION: Générez une clé sécurisée avec: ./generate-jwt-key.sh JWT_SECRET=your-super-secure-jwt-secret-key-minimum-32-characters-long JWT_EXPIRATION=3600 JWT_REFRESH_EXPIRATION=86400 # ============================================================================= # BASE DE DONNÉES # ============================================================================= DB_URL=jdbc:postgresql://localhost:5433/btpxpress DB_USERNAME=keycloak DB_PASSWORD=keycloak DB_GENERATION=drop-and-create DB_LOG_SQL=false DB_FORMAT_SQL=false DB_SHOW_SQL=false # ============================================================================= # CONFIGURATION SÉCURITÉ DES MOTS DE PASSE # ============================================================================= SECURITY_PASSWORD_MIN_LENGTH=8 SECURITY_PASSWORD_REQUIRE_UPPERCASE=true SECURITY_PASSWORD_REQUIRE_LOWERCASE=true SECURITY_PASSWORD_REQUIRE_DIGIT=true SECURITY_PASSWORD_REQUIRE_SPECIAL=true # ============================================================================= # LIMITATION DE DÉBIT (PROTECTION DDOS) # ============================================================================= SECURITY_RATE_LIMIT_ENABLED=true SECURITY_RATE_LIMIT_REQUESTS=60 SECURITY_RATE_LIMIT_LOGIN=5 SECURITY_RATE_LIMIT_LOCKOUT=900 # ============================================================================= # SESSION ET TIMEOUTS # ============================================================================= SECURITY_SESSION_TIMEOUT=1800 # ============================================================================= # HTTPS ET TLS (PRODUCTION) # ============================================================================= SECURITY_HTTPS_ENABLED=false SECURITY_HTTPS_REDIRECT=false # ============================================================================= # CONTENT SECURITY POLICY # ============================================================================= SECURITY_CSP_ENABLED=true # ============================================================================= # VALIDATION DES ENTRÉES # ============================================================================= SECURITY_VALIDATION_SANITIZE=true SECURITY_VALIDATION_MAX_SIZE=10485760 # ============================================================================= # CORS (CROSS-ORIGIN RESOURCE SHARING) # ============================================================================= CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173 # ============================================================================= # LOGGING # ============================================================================= LOG_LEVEL=INFO # ============================================================================= # POOL DE CONNEXIONS DATABASE (PRODUCTION) # ============================================================================= DB_POOL_MAX_SIZE=32 DB_POOL_MIN_SIZE=4 DB_POOL_INITIAL_SIZE=4 # ============================================================================= # EXEMPLES DE CONFIGURATION POUR DIFFÉRENTS ENVIRONNEMENTS # ============================================================================= # --- DÉVELOPPEMENT --- # JWT_SECRET=dev-secret-key-minimum-32-characters # DB_GENERATION=drop-and-create # LOG_LEVEL=DEBUG # SECURITY_RATE_LIMIT_ENABLED=false # --- TEST --- # JWT_SECRET=test-secret-key-minimum-32-characters # DB_GENERATION=create-drop # DB_URL=jdbc:h2:mem:testdb # --- PRODUCTION --- # JWT_SECRET=votre-clé-super-sécurisée-générée-aléatoirement # DB_GENERATION=validate # SECURITY_HTTPS_ENABLED=true # SECURITY_HTTPS_REDIRECT=true # CORS_ALLOWED_ORIGINS=https://votre-domaine.com # LOG_LEVEL=WARN # ============================================================================= # GÉNÉRATION DE CLÉ JWT SÉCURISÉE # ============================================================================= # Pour générer une clé JWT sécurisée, utilisez: # ./generate-jwt-key.sh # # Ou manuellement: # openssl rand -base64 48 # ou # node -e "console.log(require('crypto').randomBytes(48).toString('base64'))"