139 lines
4.2 KiB
Markdown
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
|
|
|