64 lines
2.4 KiB
YAML
64 lines
2.4 KiB
YAML
services:
|
|
traefik:
|
|
image: traefik:v2.11
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- ./traefik/traefik.yml:/etc/traefik/traefik.yml:ro
|
|
- ./traefik/dynamic.yml:/etc/traefik/dynamic.yml:ro
|
|
- ./traefik/acme.json:/acme.json
|
|
labels:
|
|
- "traefik.enable=true"
|
|
|
|
postgres:
|
|
image: postgres:16
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- ./pgdata:/var/lib/postgresql/data
|
|
|
|
keycloak:
|
|
image: quay.io/keycloak/keycloak:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080" # для доступа из других контейнеров и дебага
|
|
environment:
|
|
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN}
|
|
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
|
|
KC_DB: postgres
|
|
KC_DB_URL_HOST: postgres
|
|
KC_DB_URL_DATABASE: ${POSTGRES_DB}
|
|
KC_DB_USERNAME: ${POSTGRES_USER}
|
|
KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
|
|
KC_PROXY: edge
|
|
KC_HTTP_ENABLED: true
|
|
KC_HOSTNAME: keycloak.dev.d3h.space
|
|
KC_HOSTNAME_STRICT: true
|
|
KC_HOSTNAME_STRICT_HTTPS: true
|
|
KC_PROXY_HEADERS: xforwarded
|
|
KC_FRONTEND_URL: https://keycloak.dev.d3h.space
|
|
KC_HOSTNAME_URL: https://keycloak.dev.d3h.space
|
|
depends_on:
|
|
- postgres
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.keycloak.rule=Host(`keycloak.dev.d3h.space`)"
|
|
- "traefik.http.routers.keycloak.entrypoints=websecure"
|
|
- "traefik.http.routers.keycloak.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.keycloak.middlewares=keycloak-https-headers"
|
|
- "traefik.http.services.keycloak.loadbalancer.server.port=8080"
|
|
- "traefik.http.middlewares.keycloak-https-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
|
|
- "traefik.http.middlewares.keycloak-https-headers.headers.customrequestheaders.X-Forwarded-Scheme=https"
|
|
- "traefik.http.middlewares.keycloak-https-headers.headers.customrequestheaders.X-Forwarded-Host=keycloak.dev.d3h.space"
|
|
|
|
- "traefik.http.routers.keycloak-http.rule=Host(`keycloak.dev.d3h.space`)"
|
|
- "traefik.http.routers.keycloak-http.entrypoints=web"
|
|
- "traefik.http.routers.keycloak-http.middlewares=redirect-to-https"
|
|
entrypoint: ["/opt/keycloak/bin/kc.sh", "start"]
|