Migration complète vers PrimeFaces Freya - Corrections des incompatibilités et intégration de primefaces-freya-extension
This commit is contained in:
138
DEPLOYMENT_PRODUCTION.md
Normal file
138
DEPLOYMENT_PRODUCTION.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user