54 lines
2.0 KiB
Django/Jinja
54 lines
2.0 KiB
Django/Jinja
services:
|
|
keycloak_web:
|
|
##image: quay.io/keycloak/keycloak:26.3
|
|
image: {{ docker_registry }}/custom-keycloak-web:{{ instance_type }}
|
|
container_name: keycloak_web
|
|
restart: always
|
|
environment:
|
|
KC_DB: postgres
|
|
KC_DB_URL: jdbc:postgresql://keycloakdb:5432/keycloak
|
|
KC_DB_USERNAME: {{ iam_db_username }}
|
|
KC_DB_PASSWORD: {{ iam_db_pass }}
|
|
|
|
KC_HOSTNAME: {{ iam_fqdn }}
|
|
KC_HOSTNAME_PORT: 8443
|
|
KEYCLOAK_HTTPS_PORT: 8443
|
|
KEYCLOAK_PRODUCTION: 'true'
|
|
KEYCLOAK_ENABLE_HTTPS: 'true'
|
|
KEYCLOAK_HTTPS_USE_PEM: 'true'
|
|
KC_HTTPS_CERTIFICATE_FILE: /etc/x509/https/iam.pem
|
|
KC_HTTPS_CERTIFICATE_KEY_FILE: /etc/x509/https/iam.pem
|
|
KC_LOG_LEVEL: info
|
|
KC_METRICS_ENABLED: 'true'
|
|
KC_HEALTH_ENABLED: 'true'
|
|
KEYCLOAK_ADMIN: {{ iam_admin_username }}
|
|
KEYCLOAK_ADMIN_PASSWORD: {{ iam_admin_pass }}
|
|
KC_SPI_TRUSTSTORE_FILE_PASSWORD: password
|
|
KC_SPI_TRUSTSTORE_FILE_HOSTNAME_VERIFICATION_POLICY: ANY
|
|
{% if user_event_publisher.enable == "yes" %}
|
|
KC_SPI_EVENTS_LISTENER_USER_EVENTS_PUBLISHER_KEYCLOAK_ORIGIN: https://{{ iam_fqdn }}
|
|
KC_SPI_EVENTS_LISTENER_USER_EVENTS_PUBLISHER_USER_ORIGIN: {{ user_event_publisher.user_app_url }}
|
|
KC_SPI_EVENTS_LISTENER_USER_EVENTS_PUBLISHER_REALM: {{ iam_realm }}
|
|
KC_SPI_EVENTS_LISTENER_USER_EVENTS_PUBLISHER_CLIENT_ID: {{ user_app_client_id }}
|
|
KC_SPI_EVENTS_LISTENER_USER_EVENTS_PUBLISHER_CLIENT_SECRET: {{ user_app_client_secret }}
|
|
KC_SPI_EVENTS_LISTENER_USER_EVENTS_PUBLISHER_TIMEOUT: 5
|
|
{% endif %}
|
|
command:
|
|
- start
|
|
depends_on:
|
|
- keycloakdb
|
|
ports:
|
|
- 443:8443
|
|
volumes:
|
|
- "/opt/docker/keycloak/ssl/:/etc/x509/https"
|
|
|
|
keycloakdb:
|
|
image: postgres:16
|
|
container_name: keycloakdb
|
|
restart: always
|
|
volumes:
|
|
- /opt/docker/keycloak/db/:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_DB: keycloak
|
|
POSTGRES_USER: {{ iam_db_username }}
|
|
POSTGRES_PASSWORD: {{ iam_db_pass }} |