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

4.2 KiB

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

mvn clean package -DskipTests -pl lions-user-manager-server-impl-quarkus -Dquarkus.profile=prod

Frontend

mvn clean package -DskipTests -pl lions-user-manager-client-quarkus-primefaces-freya -Dquarkus.profile=prod

4. Docker Build

Backend

docker build -f lions-user-manager-server-impl-quarkus/Dockerfile.prod -t lions-user-manager-server:1.0.0 .

Frontend

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