/api/* SSE surface described in the HTTP API reference. There is no bundled web UI; the maintained client is pi-tui.
Architecture in production
A production deploy needs:- fleet-rlm process —
uv run fleet-rlm serve-api(equivalent touv run fleet web). - Daytona — Sandbox provider (
FLEET_DAYTONA_API_KEY). - Postgres at the canonical Alembic head —
FLEET_DATABASE_URL. - LLM provider — OpenCode Go (interactive profiles) or Databricks AI Gateway (managed profile).
- MLflow (optional) — tracing backend. The
daytona-managedprofile requires managed Unity Catalog inputs.
127.0.0.1 and reject non-loopback hosts unless --allow-non-loopback-bind is passed. In production, terminate TLS and enforce access control at a reverse proxy in front of Fleet on a private interface.
Environment configuration
Select the runtime policy inconfig/fleet.toml:
.env.production
Initialize the database
Fleet never applies migrations at startup. Bring the database to the canonical Alembic head before starting the backend:Run the backend
/api/settings endpoint still rejects non-loopback clients when the main API is exposed. Route settings edits through pi-tui /settings on a loopback client.
Health probes
Two unauthenticated endpoints are designed for orchestrators and load balancers:Reverse proxy notes
- Terminate TLS at the proxy and forward to Fleet on a private interface.
- Disable response buffering. The Turn stream is Server-Sent Events; buffered proxies will delay
data-statusheartbeats and Runtime Events. - The Turn stream emits a transient
data-statuschunk everyruntime.heartbeat_secondswhile preparation resolves. Set the proxy read timeout above that heartbeat.