113 lines
4.5 KiB
Plaintext
113 lines
4.5 KiB
Plaintext
# =============================================================================
|
|
# 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'))" |