Compare commits

..

6 Commits

Author SHA1 Message Date
dahoud
bb5a2ec8c7 fix: Use absolute URL for Swagger UI OpenAPI spec 2026-02-27 05:22:39 +00:00
dahoud
3b2aa29683 fix: Remove root-path, configure Swagger UI URL correctly 2026-02-27 05:18:56 +00:00
dahoud
7ca54276be fix: Add root-path for Swagger UI compatibility 2026-02-27 05:00:06 +00:00
dahoud
6998e18860 fix: Correct Dockerfile ENTRYPOINT for Quarkus fast-jar 2026-02-27 04:34:42 +00:00
dahoud
4ee373ac81 Merge: resolved conflict in application-prod.properties 2026-02-27 04:33:53 +00:00
dahoud
c0ef8b5ca5 refactoring 2026-02-18 18:02:53 +00:00
2 changed files with 109 additions and 108 deletions

View File

@@ -16,5 +16,5 @@ USER 1001
ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
# Use direct java command instead of run-java.sh to avoid permission issues
ENTRYPOINT ["java", "-jar", "/deployments/quarkus-run.jar"]
# Use java command with proper Quarkus options for fast-jar
ENTRYPOINT ["java", "-Dquarkus.http.host=0.0.0.0", "-Djava.util.logging.manager=org.jboss.logmanager.LogManager", "-jar", "/deployments/quarkus-run.jar"]

View File

@@ -1,106 +1,107 @@
# ============================================================================
# Lions User Manager - Server Implementation Configuration - PROD
# ============================================================================
# Ce fichier contient UNIQUEMENT les propriétés spécifiques à la PRODUCTION
# Il surcharge application.properties
# ============================================================================
# ============================================
# HTTP Configuration PROD
# ============================================
quarkus.http.port=8080
# quarkus.http.root-path est une propriete build-time — passee via -Dquarkus.http.root-path dans le Dockerfile
quarkus.http.cors.origins=${CORS_ORIGINS:https://users.lions.dev,https://btpxpress.lions.dev,https://admin.lions.dev}
# ============================================
# OIDC Configuration PROD
# ============================================
quarkus.oidc.enabled=true
quarkus.oidc.auth-server-url=${KEYCLOAK_AUTH_SERVER_URL:https://security.lions.dev/realms/lions-user-manager}
quarkus.oidc.token.issuer=${KEYCLOAK_AUTH_SERVER_URL:https://security.lions.dev/realms/lions-user-manager}
quarkus.oidc.tls.verification=required
# ============================================
# Keycloak Admin Client Configuration PROD
# ============================================
lions.keycloak.server-url=${KEYCLOAK_SERVER_URL:https://security.lions.dev}
lions.keycloak.admin-username=${KEYCLOAK_ADMIN_USERNAME:admin}
lions.keycloak.admin-password=${KEYCLOAK_ADMIN_PASSWORD:KeycloakAdmin2025!}
lions.keycloak.connection-pool-size=20
lions.keycloak.timeout-seconds=60
lions.keycloak.authorized-realms=${KEYCLOAK_AUTHORIZED_REALMS:lions-user-manager,btpxpress,master,unionflow}
# Quarkus-managed Keycloak Admin Client PROD
quarkus.keycloak.admin-client.server-url=${KEYCLOAK_SERVER_URL:https://security.lions.dev}
quarkus.keycloak.admin-client.realm=master
quarkus.keycloak.admin-client.client-id=admin-cli
quarkus.keycloak.admin-client.grant-type=PASSWORD
quarkus.keycloak.admin-client.username=${KEYCLOAK_ADMIN_USERNAME:admin}
quarkus.keycloak.admin-client.password=${KEYCLOAK_ADMIN_PASSWORD:KeycloakAdmin2025!}
# ============================================
# Retry Configuration PROD
# ============================================
lions.keycloak.retry.max-attempts=5
lions.keycloak.retry.delay-seconds=3
# ============================================
# Audit Configuration PROD
# ============================================
lions.audit.log-to-database=true
lions.audit.log-to-file=false
lions.audit.retention-days=365
# ============================================
# Database Configuration PROD
# ============================================
quarkus.datasource.health.enabled=true
quarkus.datasource.username=${DB_USERNAME}
quarkus.datasource.password=${DB_PASSWORD}
quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST}:${DB_PORT:5432}/${DB_NAME:lions_user_manager}
# ============================================
# Hibernate ORM Configuration PROD
# ============================================
quarkus.hibernate-orm.database.generation=none
quarkus.hibernate-orm.log.sql=false
# ============================================
# Flyway Configuration PROD
# ============================================
quarkus.flyway.migrate-at-start=true
# ============================================
# Logging Configuration PROD
# ============================================
quarkus.log.level=INFO
quarkus.log.category."dev.lions.user.manager".level=INFO
quarkus.log.category."org.keycloak".level=WARN
quarkus.log.category."io.quarkus".level=INFO
quarkus.log.console.enable=true
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n
# File Logging désactivé en PROD (logs centralisés via Kubernetes)
quarkus.log.file.enable=false
# ============================================
# OpenAPI/Swagger Configuration PROD
# ============================================
quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.enable=true
# ============================================
# Performance Tuning PROD
# ============================================
quarkus.thread-pool.core-threads=4
quarkus.thread-pool.max-threads=32
quarkus.thread-pool.queue-size=200
# ============================================
# SSL/TLS Configuration PROD (optionnel)
# ============================================
# Décommenter si le serveur gère le SSL directement (sinon géré par Ingress/Load Balancer)
# quarkus.http.ssl.certificate.key-store-file=${SSL_KEYSTORE_FILE:/etc/ssl/keystore.p12}
# quarkus.http.ssl.certificate.key-store-password=${SSL_KEYSTORE_PASSWORD}
# quarkus.http.ssl.certificate.key-store-file-type=PKCS12
# ============================================================================
# Lions User Manager - Server Implementation Configuration - PROD
# ============================================================================
# Ce fichier contient UNIQUEMENT les propriétés spécifiques à la PRODUCTION
# Il surcharge application.properties
# ============================================================================
# ============================================
# HTTP Configuration PROD
# ============================================
quarkus.http.port=8080
# quarkus.http.root-path est une propriete build-time — passee via -Dquarkus.http.root-path dans le Dockerfile
quarkus.http.cors.origins=${CORS_ORIGINS:https://users.lions.dev,https://btpxpress.lions.dev,https://admin.lions.dev}
# ============================================
# OIDC Configuration PROD
# ============================================
quarkus.oidc.enabled=true
quarkus.oidc.auth-server-url=${KEYCLOAK_AUTH_SERVER_URL:https://security.lions.dev/realms/lions-user-manager}
quarkus.oidc.token.issuer=${KEYCLOAK_AUTH_SERVER_URL:https://security.lions.dev/realms/lions-user-manager}
quarkus.oidc.tls.verification=required
# ============================================
# Keycloak Admin Client Configuration PROD
# ============================================
lions.keycloak.server-url=${KEYCLOAK_SERVER_URL:https://security.lions.dev}
lions.keycloak.admin-username=${KEYCLOAK_ADMIN_USERNAME:admin}
lions.keycloak.admin-password=${KEYCLOAK_ADMIN_PASSWORD:KeycloakAdmin2025!}
lions.keycloak.connection-pool-size=20
lions.keycloak.timeout-seconds=60
lions.keycloak.authorized-realms=${KEYCLOAK_AUTHORIZED_REALMS:lions-user-manager,btpxpress,master,unionflow}
# Quarkus-managed Keycloak Admin Client PROD
quarkus.keycloak.admin-client.server-url=${KEYCLOAK_SERVER_URL:https://security.lions.dev}
quarkus.keycloak.admin-client.realm=master
quarkus.keycloak.admin-client.client-id=admin-cli
quarkus.keycloak.admin-client.grant-type=PASSWORD
quarkus.keycloak.admin-client.username=${KEYCLOAK_ADMIN_USERNAME:admin}
quarkus.keycloak.admin-client.password=${KEYCLOAK_ADMIN_PASSWORD:KeycloakAdmin2025!}
# ============================================
# Retry Configuration PROD
# ============================================
lions.keycloak.retry.max-attempts=5
lions.keycloak.retry.delay-seconds=3
# ============================================
# Audit Configuration PROD
# ============================================
lions.audit.log-to-database=true
lions.audit.log-to-file=false
lions.audit.retention-days=365
# ============================================
# Database Configuration PROD
# ============================================
quarkus.datasource.health.enabled=true
quarkus.datasource.username=${DB_USERNAME}
quarkus.datasource.password=${DB_PASSWORD}
quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST}:${DB_PORT:5432}/${DB_NAME:lions_user_manager}
# ============================================
# Hibernate ORM Configuration PROD
# ============================================
quarkus.hibernate-orm.database.generation=none
quarkus.hibernate-orm.log.sql=false
# ============================================
# Flyway Configuration PROD
# ============================================
quarkus.flyway.migrate-at-start=true
# ============================================
# Logging Configuration PROD
# ============================================
quarkus.log.level=INFO
quarkus.log.category."dev.lions.user.manager".level=INFO
quarkus.log.category."org.keycloak".level=WARN
quarkus.log.category."io.quarkus".level=INFO
quarkus.log.console.enable=true
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n
# File Logging désactivé en PROD (logs centralisés via Kubernetes)
quarkus.log.file.enable=false
# ============================================
# OpenAPI/Swagger Configuration PROD
# ============================================
quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.enable=true
quarkus.swagger-ui.urls.default=/lions-user-manager/q/openapi
# ============================================
# Performance Tuning PROD
# ============================================
quarkus.thread-pool.core-threads=4
quarkus.thread-pool.max-threads=32
quarkus.thread-pool.queue-size=200
# ============================================
# SSL/TLS Configuration PROD (optionnel)
# ============================================
# Décommenter si le serveur gère le SSL directement (sinon géré par Ingress/Load Balancer)
# quarkus.http.ssl.certificate.key-store-file=${SSL_KEYSTORE_FILE:/etc/ssl/keystore.p12}
# quarkus.http.ssl.certificate.key-store-password=${SSL_KEYSTORE_PASSWORD}
# quarkus.http.ssl.certificate.key-store-file-type=PKCS12