Manage the workflow engine's Docker Compose stack. Use when starting, stopping, rebuilding containers, or resetting the database.
| Profile | Services |
|---|---|
app | workflow-engine + postgres |
dashboard | dashboard |
full | everything (engine + postgres + dashboard + monitoring + mocks) |
Start a profile:
docker compose --profile <profile> up -d
Rebuild and deploy the engine:
docker compose build workflow-engine && docker compose --profile app up -d --no-deps workflow-engine
Rebuild and deploy the dashboard:
docker compose build dashboard && docker compose --profile dashboard up -d --no-deps dashboard
Stop everything:
docker compose --profile full down
View container status:
docker compose ps
View logs for a specific service:
docker compose logs -f <service-name>
| Container | Port(s) | Purpose |
|---|---|---|
workflow-engine | 8080, 8081 | API |
dashboard | 8090 | Monitoring UI |
postgres | 5433 | Database |
pgadmin | 5050 | PostgreSQL admin UI |
lgtm | 7070, 4317, 4318 | Grafana + Prometheus + Loki + Tempo + OTLP |
blackbox-exporter | — | Prometheus blackbox exporter |
postgres-exporter | 9187 | Prometheus PostgreSQL exporter |
wiremock | 6060 | Mock app callbacks |
Truncate all workflow data (requires running postgres container):
docker compose exec postgres psql -U postgres -d workflow_engine -c 'TRUNCATE "Workflows", "Steps" CASCADE;'
wwwroot/ is bind-mounted — frontend file edits are live without rebuild (just browser refresh, or automatic via hot-reload).workflow-engine-app directory with dotnet run --project src/WorkflowEngine.App (requires postgres container).