diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index eff1cd1..cedfa6a 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -127,7 +127,7 @@ jobs: # Log dump must precede teardown (which removes the containers). - name: Dump container logs on failure if: failure() - run: docker compose -f infra/docker-compose.yml logs --no-color --tail=100 oz-init openzaak nrc-init nrc-web nrc-celery nrc-beat flowable-db flowable-rest flowable-init keycloak acl bff domain projection-db event-subscriber projection-api 2>&1 || true + run: docker compose -f infra/docker-compose.yml logs --no-color --tail=100 oz-init openzaak nrc-init nrc-web nrc-celery nrc-beat flowable-db flowable-rest flowable-init keycloak acl bff domain projection-db event-subscriber projection-api self-service 2>&1 || true - name: Tear down if: always() run: make down diff --git a/Makefile b/Makefile index 01b48ae..5e08b27 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ COMPOSE := infra/docker-compose.yml # Long-running services with a healthcheck — the smoke polls these for readiness # (infra/wait-healthy.sh). One-shot init jobs (oz-init, nrc-init, flowable-init) # are not polled; they only need to have run. See docs/runbooks/gitea-actions-gotchas.md. -WAIT_SVCS := openzaak nrc-web acl bff domain event-subscriber projection-api +WAIT_SVCS := openzaak nrc-web acl bff domain event-subscriber projection-api self-service # Config files (OpenZaak data.yaml, Keycloak realms, Flowable BPMN) are streamed # into external named volumes via `docker cp` (infra/seed-config.sh) instead of # bind-mounted, because bind mounts don't reach sibling containers on the diff --git a/infra/docker-compose.yml b/infra/docker-compose.yml index 0c10982..7a51c3f 100644 --- a/infra/docker-compose.yml +++ b/infra/docker-compose.yml @@ -433,6 +433,30 @@ services: condition: service_healthy networks: [cg] + # ── Self-Service portal (S-08d) ──────────────────────────────────────────── + # nginx serves the Angular app and reverse-proxies /self-service + /openbaar to the BFF + # (same-origin, no CORS). The Playwright e2e drives it inside this network so the DigiD + # token issuer (keycloak:8080) matches the BFF's authority (ADR-0010). + self-service: + build: + context: .. + dockerfile: apps/self-service/Dockerfile + image: register-referentie/self-service:dev + ports: + - "8140:80" + healthcheck: + test: ["CMD-SHELL", "wget -q -O /dev/null http://localhost/ || exit 1"] + interval: 5s + timeout: 3s + retries: 5 + start_period: 10s + depends_on: + bff: + condition: service_healthy + keycloak: + condition: service_started + networks: [cg] + volumes: oz-db: nrc-db: