# Flowable (S-03): the flowable-rest engine on Postgres. # The registratie.bpmn model is deployed via the REST API on startup by flowable-init. # # docker compose -f infra/flowable/docker-compose.yml up -d # # REST API (basic auth) under http://localhost:8090/flowable-rest/service/ # # Host port 8090 (8000/8001/8080/8180 are taken by OpenZaak/NRC/BFF/Keycloak). services: flowable-db: image: docker.io/library/postgres:16 environment: POSTGRES_USER: flowable POSTGRES_PASSWORD: flowable POSTGRES_DB: flowable volumes: - flowable-db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U flowable -d flowable"] interval: 5s timeout: 3s retries: 10 networks: [cg] flowable-rest: image: docker.io/flowable/flowable-rest:latest environment: SPRING_DATASOURCE_DRIVER-CLASS-NAME: org.postgresql.Driver SPRING_DATASOURCE_URL: jdbc:postgresql://flowable-db:5432/flowable SPRING_DATASOURCE_USERNAME: flowable SPRING_DATASOURCE_PASSWORD: flowable ports: - "8090:8080" depends_on: flowable-db: condition: service_healthy networks: [cg] # Deploys workflows/registratie.bpmn via the REST API once flowable-rest is up. # Idempotent: skips if a deployment named "registratie" already exists. flowable-init: image: docker.io/curlimages/curl:latest restart: "no" # registratie.bpmn is streamed into this external volume by infra/seed-config.sh. volumes: - fl-bpmn:/work:ro command: - sh - -c - | base=http://flowable-rest:8080/flowable-rest/service/repository/deployments until curl -sf -u rest-admin:test "$$base" >/dev/null 2>&1; do echo "waiting for flowable-rest..."; sleep 3; done if curl -s -u rest-admin:test "$$base?name=registratie" | grep -q '"name":"registratie"'; then echo "registratie already deployed; skip" else curl -sf -u rest-admin:test -F 'file=@/work/registratie.bpmn;filename=registratie.bpmn' "$$base" >/dev/null && echo "deployed registratie" fi depends_on: flowable-rest: condition: service_started networks: [cg] volumes: flowable-db: # populated out-of-band by infra/seed-config.sh (docker cp) — see that script. fl-bpmn: external: true name: rr-fl-bpmn networks: cg: