How-to guides¶
Task-focused guides for common goals. For a minimal first run, use Get started → Installation and Quick start (demo flow). For API, workers, and deployments in depth, see Self-hosted server — including Docker / Compose shapes mapped against Prefect’s self-hosted how-tos.
- How to set up IronFlow — clone, Python environment, build the Rust engine, environment variables,
PYTHONPATH. - How to run the server and UI — API + optional Vite UI via
scripts/ironflow_server.py. - How to run the server in Docker — single-container image, volumes, optional basic auth.
- How to run IronFlow with Docker Compose — Postgres + API + services + HTTP workers.
- How to run background services —
ironflow server services startwithout an HTTP listener. - How to use Postgres for the control plane —
IRONFLOW_DATABASE_URL, Rust claim bind. - How to run workers in HTTP mode —
IRONFLOW_WORKER_MODE=http, claim API, no shared DB volume. - How to secure a self-hosted server —
IRONFLOW_*_AUTH_STRINGBasic auth and reverse-proxy notes. - How to deploy with the CLI and
ironflow.yaml—ironflow init/deploy/serve/worker start, manifest schema, anddeploy()/serve()Python API. - How to create and update deployments — create/patch deployments, trigger runs, and configure interval or cron schedules.
- How to compose flows with subflows — inline blocking children vs
deployment_ref(...).submit(),wait_for, fire-and-forget, and UI navigation. - How to choose a task runner — thread vs process vs sequential for
submit/map; API/remote vs local CPU workloads. - How to use concurrency limits — global slots,
concurrency/rate_limit, tag-based task caps. - How to resume tasks and persist results — DAG resume on retry,
@task(persist_result=True), JSON allowlist, UI. - How to cancel, pause, and resume — drain vs terminate pause, process-kill cancel, resume + P1 skip/recompute.
- How to port a flow from Prefect — imports, control plane, staying inside the supported subset.
Conceptual background: Concepts overview. Normative limits: Compatibility matrix.