# Configuration GBCM Server ## Vue d'ensemble Le serveur GBCM utilise Quarkus avec des profils de configuration pour différents environnements. ## Profils disponibles ### Profil par défaut (Production) - Base de données PostgreSQL - JWT avec clés RSA - Logs au niveau WARN - Sécurité renforcée ### Profil `dev` (Développement) - Base de données H2 en mémoire - Logs au niveau DEBUG - Sécurité allégée (BCrypt cost=4) - Rechargement automatique ### Profil `test` (Tests) - Base de données H2 en mémoire - Configuration optimisée pour les tests - Sécurité minimale pour rapidité ### Profil `local` (Développement local) - Configuration personnalisable - Utilise `application-local.properties` ## Variables d'environnement importantes ### Base de données (Production) ```bash DATABASE_URL=jdbc:postgresql://localhost:5432/gbcm_prod DB_USERNAME=gbcm_prod_user DB_PASSWORD=secure_password ``` ### JWT (Production) ```bash JWT_SECRET=your-super-secure-jwt-secret-key-256-bits-minimum ``` ### Email (Production) ```bash SMTP_USERNAME=your-smtp-username SMTP_PASSWORD=your-smtp-password ``` ## Configuration de sécurité ### Paramètres JWT - `gbcm.security.jwt.access-token.duration`: Durée de vie des tokens d'accès (défaut: 1h) - `gbcm.security.jwt.refresh-token.duration`: Durée de vie des refresh tokens (défaut: 7j) - `gbcm.security.jwt.reset-token.duration`: Durée de vie des tokens de reset (défaut: 2h) ### Paramètres de mot de passe - `gbcm.security.password.bcrypt-cost`: Coût BCrypt (défaut: 12) - `gbcm.security.password.min-length`: Longueur minimale (défaut: 8) - `gbcm.security.password.max-age`: Âge maximum (défaut: 90j) ### Paramètres de compte - `gbcm.security.account.max-failed-attempts`: Tentatives max (défaut: 5) - `gbcm.security.account.lockout-duration`: Durée de verrouillage (défaut: 30min) ## Démarrage rapide ### Développement avec H2 ```bash mvn quarkus:dev ``` ### Développement avec configuration locale ```bash mvn quarkus:dev -Dquarkus.profile=local ``` ### Tests ```bash mvn test ``` ### Production ```bash java -jar target/quarkus-app/quarkus-run.jar -Dquarkus.profile=prod ``` ## URLs importantes - Application: http://localhost:8081 - Swagger UI: http://localhost:8081/swagger - Health Check: http://localhost:8081/health - Metrics: http://localhost:8081/q/metrics ## Sécurité ⚠️ **Important**: - Changez toujours `JWT_SECRET` en production - Utilisez des mots de passe forts pour la base de données - Configurez HTTPS en production - Limitez les origines CORS en production ## Logs Les logs sont configurés par niveau : - `com.gbcm`: DEBUG en développement, INFO en production - `org.hibernate.SQL`: DEBUG en développement seulement - Root level: DEBUG en dev, WARN en production