Docker Compose
The Compose deployment in apps/backend/docker-compose/ runs Flow-Like on one
Docker host. It includes the web app, API, execution runtime, persistence,
realtime collaboration, custom-node compilation, and server-side event
services.
Architecture
Section titled “Architecture”The published web port serves the application. The published API port belongs to an Nginx gateway, which load-balances the internal API replicas. Runtime replicas are internal services reached over HTTP for interactive runs and through Redis for queued runs.
Object storage is not created by the Compose file. The stock API includes Azure, GCP, and R2 runtime credentials. AWS and generic S3 appear in the configuration, but the checked-in Compose API target must be rebuilt with its AWS feature before those providers can initialize end to end.
Services
Section titled “Services”| Service | Published port | Responsibility |
|---|---|---|
web | 3001 | Flow-Like web application |
api-gateway | 8080 | Stable API entrypoint and load balancer |
api | Internal 8080 | API replicas, authentication, app state, and dispatch |
runtime | Internal 9000 | Shared execution workers and Redis queue consumers |
compiler | 8081 | WASM compilation for custom nodes |
signaling | 4444 | Realtime collaboration signaling |
sink-services | — | Cron and configured bot/event adapters |
postgres | 5432 | Relational application metadata |
redis | 6379 | Execution state, queues, and signaling coordination |
db-init | — | One-time database initialization job |
The optional monitoring profile adds Prometheus, Tempo, Grafana, and Redis
and PostgreSQL exporters.
Quick start
Section titled “Quick start”cd apps/backend/docker-composecp .env.example .env
# Configure storage and trust keys in .env, then start the stack.../../../tools/gen-execution-keys.sh --exportdocker compose up -dStart the same stack with observability:
docker compose --profile monitoring up -dContinue with the installation guide before exposing any service outside a development network.
Execution model
Section titled “Execution model”Compose uses long-running runtime replicas. A replica can process multiple runs over its lifetime, so this is a shared-worker model rather than a fresh container per invocation.
This model is a good fit for:
- Development and evaluation
- A private team on a controlled host
- Workloads where simple operations and low startup overhead matter
The current Kubernetes Job dispatcher can create a Job, but its executor entrypoint is still pending. For the implemented and incomplete dispatch choices, see Execution Backends.