Docker Compose local development stack
The local development stack provides Postgres and Qdrant on fixed host ports so SDK, server, and example workflows can run outside Docker while sharing consistent dependency versions.
File: docker/docker-compose.dev.yml.
Services
| Service | Image | Host ports | Purpose |
|---|---|---|---|
postgres | postgres:16-alpine | 5432 | Runs, recovery, registry, sites, traces |
qdrant | qdrant/qdrant:v1.12.5 | 6333, 6334 | Vector memory and RAG examples |
Both services define Docker healthchecks (pg_isready for Postgres, Qdrant /readyz for Qdrant).
Start and verify
From the repository root:
Verify Postgres:
Verify Qdrant:
Default credentials (development only):
| Setting | Value |
|---|---|
| User | arcflow |
| Password | arcflow |
| Database | arcflow |
| Connection URL | postgres://arcflow:arcflow@localhost:5432/arcflow |
Local .env template
Create a .env in the repo root or export variables in your shell. Never commit secrets.
Use stub embedding provider only for offline tests without real embeddings.
Feature to service mapping
| Feature | Requires |
|---|---|
| SDK linear workflows (in-process) | LLM key or stub provider only |
Server POST /v1/runs | Postgres + migrations |
| Recovery / HITL | Postgres + migrations |
| Vector RAG / knowledge ingest | Qdrant + real embedding provider |
| Hybrid retrieval + rerank | Qdrant + ARCFLOW_QDRANT_HYBRID + Cohere key |
| Admin sites / static product | Postgres + server + relay (see prod compose) |
Running the server against this stack
After the dev stack is healthy:
Smoke checks:
Smoke test scripts
Reference implementations:
Stop and reset
To wipe data volumes (destructive):