This repository has been archived on 2026-01-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lions-user-manager/DEPLOYMENT_PRODUCTION.md

139 lines
4.2 KiB
Markdown

# 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