# Déploiement en Production - Lions User Manager ## ✅ Vérification de la Déployabilité ### 1. Configuration Production #### Backend (server-impl-quarkus) - ✅ **Dockerfile.prod** : Multi-stage build optimisé avec sécurité renforcée - ✅ **application-prod.properties** : Configuration complète pour production - SSL/TLS activé (`quarkus.oidc.tls.verification=required`) - Base de données PostgreSQL configurée pour audit - Logging vers fichiers et base de données - Métriques Prometheus activées - Health checks configurés - Swagger UI désactivé - Sécurité renforcée (`deny-unannotated-endpoints=true`) #### Frontend (client-quarkus-primefaces-freya) - ✅ **Dockerfile.prod** : Multi-stage build optimisé - ✅ Configuration OIDC pour production - ✅ CORS configuré pour les domaines de production ### 2. Dépendances Production #### Backend - ✅ PostgreSQL (pour logs d'audit) - ✅ Keycloak (serveur d'authentification) - ✅ Variables d'environnement requises : - `KEYCLOAK_CLIENT_SECRET` - `KEYCLOAK_ADMIN_USERNAME` - `KEYCLOAK_ADMIN_PASSWORD` - `DB_USERNAME` - `DB_PASSWORD` - `DB_HOST` - `DB_PORT` - `DB_NAME` - `SSL_KEYSTORE_FILE` - `SSL_KEYSTORE_PASSWORD` #### Frontend - ✅ Backend API accessible - ✅ Keycloak OIDC configuré - ✅ Variables d'environnement : - `QUARKUS_OIDC_AUTH_SERVER_URL` - `QUARKUS_OIDC_CLIENT_ID` - `LIONS_USER_MANAGER_BACKEND_URL` ### 3. Build Production #### Backend ```bash mvn clean package -DskipTests -pl lions-user-manager-server-impl-quarkus -Dquarkus.profile=prod ``` #### Frontend ```bash mvn clean package -DskipTests -pl lions-user-manager-client-quarkus-primefaces-freya -Dquarkus.profile=prod ``` ### 4. Docker Build #### Backend ```bash docker build -f lions-user-manager-server-impl-quarkus/Dockerfile.prod -t lions-user-manager-server:1.0.0 . ``` #### Frontend ```bash docker build -f lions-user-manager-client-quarkus-primefaces-freya/Dockerfile.prod -t lions-user-manager-client:1.0.0 . ``` ### 5. Points d'Attention #### ⚠️ Variables d'Environnement Toutes les variables d'environnement sensibles doivent être configurées via : - Secrets Kubernetes - Variables d'environnement Docker - Configuration externe (Vault, etc.) #### ⚠️ Base de Données - La base de données PostgreSQL est **obligatoire** en production pour les logs d'audit - Les migrations Flyway s'exécutent automatiquement au démarrage - Configuration requise dans `application-prod.properties` #### ⚠️ SSL/TLS - Certificats SSL requis pour HTTPS - Configuration dans `application-prod.properties` : - `quarkus.http.ssl.certificate.key-store-file` - `quarkus.http.ssl.certificate.key-store-password` #### ⚠️ Keycloak - Serveur Keycloak doit être accessible en HTTPS - Client `lions-user-manager` doit être configuré dans Keycloak - Secret client doit être fourni via variable d'environnement ### 6. Health Checks Les endpoints de health check sont disponibles : - `/q/health` : Health check général - `/q/health/live` : Liveness probe - `/q/health/ready` : Readiness probe - `/q/metrics` : Métriques Prometheus ### 7. Monitoring - ✅ Métriques Prometheus activées - ✅ Logging structuré vers fichiers - ✅ Logging vers base de données (audit) - ✅ Health checks configurés ### 8. Sécurité - ✅ SSL/TLS requis - ✅ CORS configuré pour domaines spécifiques - ✅ OIDC avec vérification TLS - ✅ Endpoints non annotés refusés - ✅ Swagger UI désactivé en production ## ✅ Conclusion Le projet est **déployable en production** avec les configurations suivantes : 1. ✅ Dockerfiles de production présents et optimisés 2. ✅ Configuration production complète (`application-prod.properties`) 3. ✅ Variables d'environnement documentées 4. ✅ Health checks configurés 5. ✅ Monitoring et métriques activés 6. ✅ Sécurité renforcée 7. ✅ Base de données configurée pour audit **Actions requises avant déploiement** : 1. Configurer les secrets Kubernetes/variables d'environnement 2. Configurer la base de données PostgreSQL 3. Configurer les certificats SSL/TLS 4. Configurer Keycloak avec le client `lions-user-manager` 5. Tester le build Docker en local 6. Déployer via Kubernetes/Docker Compose