|
|
|
@@ -17,12 +17,7 @@
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Port map (host):
|
|
|
|
# Port map (host):
|
|
|
|
# 8000 OpenZaak · 8001 Open Notificaties · 8080 BFF · 8090 Flowable REST
|
|
|
|
# 8000 OpenZaak · 8001 Open Notificaties · 8080 BFF · 8090 Flowable REST
|
|
|
|
# 8100 ACL · 8130 Domain · 8180 Keycloak (all admin: admin / admin — dev only)
|
|
|
|
# 8100 ACL · 8180 Keycloak (all admin: admin / admin — dev only)
|
|
|
|
# 8140 self-service portal · 8141 openbaar register · 8142 behandel portal
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# Portal OIDC on the HOST: browse the portals at their 8140/8141/8142 ports and log in via
|
|
|
|
|
|
|
|
# Keycloak on localhost:8180 (KC_HOSTNAME below pins the issuer there; the BFF still validates
|
|
|
|
|
|
|
|
# in-network via keycloak:8080). Test users are in docs/synthetic-data.md.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
services:
|
|
|
|
|
|
|
|
|
|
|
|
@@ -210,12 +205,6 @@ services:
|
|
|
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
|
|
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
|
|
|
KC_HEALTH_ENABLED: "true"
|
|
|
|
KC_HEALTH_ENABLED: "true"
|
|
|
|
KC_HTTP_ENABLED: "true"
|
|
|
|
KC_HTTP_ENABLED: "true"
|
|
|
|
# Pin the frontend/issuer URL to the host-published address so a browser on the host and the
|
|
|
|
|
|
|
|
# tokens it gets both use localhost:8180. KC_HOSTNAME_BACKCHANNEL_DYNAMIC lets in-network
|
|
|
|
|
|
|
|
# callers (the BFF via keycloak:8080) still resolve token/jwks endpoints to their request host,
|
|
|
|
|
|
|
|
# so the BFF validates the localhost:8180 issuer while fetching keys over the compose network.
|
|
|
|
|
|
|
|
KC_HOSTNAME: http://localhost:8180
|
|
|
|
|
|
|
|
KC_HOSTNAME_BACKCHANNEL_DYNAMIC: "true"
|
|
|
|
|
|
|
|
ports:
|
|
|
|
ports:
|
|
|
|
- "8180:8080"
|
|
|
|
- "8180:8080"
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
@@ -306,14 +295,6 @@ services:
|
|
|
|
context: ../services/bff
|
|
|
|
context: ../services/bff
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
image: register-referentie/bff:dev
|
|
|
|
image: register-referentie/bff:dev
|
|
|
|
environment:
|
|
|
|
|
|
|
|
# Reach Keycloak over the compose network for metadata/keys; the discovered issuer is the
|
|
|
|
|
|
|
|
# host-pinned localhost:8180 (KC_HOSTNAME above), which is what browser tokens carry — so
|
|
|
|
|
|
|
|
# validation matches without the BFF ever needing to resolve localhost:8180 itself.
|
|
|
|
|
|
|
|
Keycloak__Authority: http://keycloak:8080/realms/digid
|
|
|
|
|
|
|
|
Keycloak__MedewerkerAuthority: http://keycloak:8080/realms/medewerker
|
|
|
|
|
|
|
|
Downstream__Domain__BaseUrl: http://domain:8080/
|
|
|
|
|
|
|
|
Downstream__Projection__BaseUrl: http://projection-api:8080/
|
|
|
|
|
|
|
|
ports:
|
|
|
|
ports:
|
|
|
|
- "8080:8080"
|
|
|
|
- "8080:8080"
|
|
|
|
healthcheck:
|
|
|
|
healthcheck:
|
|
|
|
@@ -322,39 +303,6 @@ services:
|
|
|
|
timeout: 3s
|
|
|
|
timeout: 3s
|
|
|
|
retries: 5
|
|
|
|
retries: 5
|
|
|
|
start_period: 10s
|
|
|
|
start_period: 10s
|
|
|
|
depends_on:
|
|
|
|
|
|
|
|
domain:
|
|
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
|
|
projection-api:
|
|
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
|
|
keycloak:
|
|
|
|
|
|
|
|
condition: service_started
|
|
|
|
|
|
|
|
networks: [cg]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ── BIG Domain Service (S-05) ─────────────────────────────────────────────
|
|
|
|
|
|
|
|
domain:
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
|
|
|
context: ../services/domain
|
|
|
|
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
|
|
|
|
image: register-referentie/domain:dev
|
|
|
|
|
|
|
|
environment:
|
|
|
|
|
|
|
|
Flowable__BaseUrl: http://flowable-rest:8080/flowable-rest/
|
|
|
|
|
|
|
|
Flowable__Username: rest-admin
|
|
|
|
|
|
|
|
Flowable__Password: test
|
|
|
|
|
|
|
|
Acl__BaseUrl: http://acl:8080/
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "8130:8080"
|
|
|
|
|
|
|
|
healthcheck:
|
|
|
|
|
|
|
|
test: ["CMD", "curl", "-fsS", "http://localhost:8080/health"]
|
|
|
|
|
|
|
|
interval: 5s
|
|
|
|
|
|
|
|
timeout: 3s
|
|
|
|
|
|
|
|
retries: 5
|
|
|
|
|
|
|
|
start_period: 10s
|
|
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
|
|
acl:
|
|
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
|
|
flowable-init:
|
|
|
|
|
|
|
|
condition: service_completed_successfully
|
|
|
|
|
|
|
|
networks: [cg]
|
|
|
|
networks: [cg]
|
|
|
|
|
|
|
|
|
|
|
|
# ── Read projection (S-06) ────────────────────────────────────────────────
|
|
|
|
# ── Read projection (S-06) ────────────────────────────────────────────────
|
|
|
|
@@ -414,73 +362,6 @@ services:
|
|
|
|
condition: service_healthy
|
|
|
|
condition: service_healthy
|
|
|
|
networks: [cg]
|
|
|
|
networks: [cg]
|
|
|
|
|
|
|
|
|
|
|
|
# ── Portals (S-08/S-09/S-12) ──────────────────────────────────────────────
|
|
|
|
|
|
|
|
# nginx serves each Angular app and reverse-proxies its endpoint group to the BFF (same-origin).
|
|
|
|
|
|
|
|
# The images bake config.json with the compose authority (keycloak:8080), which a HOST browser
|
|
|
|
|
|
|
|
# can't resolve — so here we bind-mount a config.json pointing at the host-published localhost:8180
|
|
|
|
|
|
|
|
# (matching KC_HOSTNAME). openbaar is anonymous and needs no config.
|
|
|
|
|
|
|
|
self-service:
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
|
|
|
context: ..
|
|
|
|
|
|
|
|
dockerfile: apps/self-service/Dockerfile
|
|
|
|
|
|
|
|
image: register-referentie/self-service:dev
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "8140:80"
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
|
|
- ./local-config/self-service.config.json:/usr/share/nginx/html/config.json:ro,z
|
|
|
|
|
|
|
|
healthcheck:
|
|
|
|
|
|
|
|
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/ || exit 1"]
|
|
|
|
|
|
|
|
interval: 5s
|
|
|
|
|
|
|
|
timeout: 3s
|
|
|
|
|
|
|
|
retries: 5
|
|
|
|
|
|
|
|
start_period: 10s
|
|
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
|
|
bff:
|
|
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
|
|
keycloak:
|
|
|
|
|
|
|
|
condition: service_started
|
|
|
|
|
|
|
|
networks: [cg]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
openbaar:
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
|
|
|
context: ..
|
|
|
|
|
|
|
|
dockerfile: apps/openbaar/Dockerfile
|
|
|
|
|
|
|
|
image: register-referentie/openbaar:dev
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "8141:80"
|
|
|
|
|
|
|
|
healthcheck:
|
|
|
|
|
|
|
|
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/ || exit 1"]
|
|
|
|
|
|
|
|
interval: 5s
|
|
|
|
|
|
|
|
timeout: 3s
|
|
|
|
|
|
|
|
retries: 5
|
|
|
|
|
|
|
|
start_period: 10s
|
|
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
|
|
bff:
|
|
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
|
|
networks: [cg]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
behandel:
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
|
|
|
context: ..
|
|
|
|
|
|
|
|
dockerfile: apps/behandel/Dockerfile
|
|
|
|
|
|
|
|
image: register-referentie/behandel:dev
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "8142:80"
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
|
|
- ./local-config/behandel.config.json:/usr/share/nginx/html/config.json:ro,z
|
|
|
|
|
|
|
|
healthcheck:
|
|
|
|
|
|
|
|
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/ || exit 1"]
|
|
|
|
|
|
|
|
interval: 5s
|
|
|
|
|
|
|
|
timeout: 3s
|
|
|
|
|
|
|
|
retries: 5
|
|
|
|
|
|
|
|
start_period: 10s
|
|
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
|
|
bff:
|
|
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
|
|
keycloak:
|
|
|
|
|
|
|
|
condition: service_started
|
|
|
|
|
|
|
|
networks: [cg]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
oz-db:
|
|
|
|
oz-db:
|
|
|
|
nrc-db:
|
|
|
|
nrc-db:
|
|
|
|
|