Skip to main content
Floo is config-as-code. floo init creates files in your repo, those files become the source of truth for app shape, and the dashboard reflects their live effect instead of mutating them. For the control-plane model itself, start with Config as Code.

What floo init creates

For a single-service project, floo init detects your runtime and writes a single floo.app.toml with the service declared inline. A Dockerfile is scaffolded too when one isn’t already present. You can edit floo.app.toml by hand before deploying.

Single service

Most apps need one floo.app.toml with an inline service:
[app]
name = "my-app"

[services.web]
type = "web"
port = 3000
ingress = "public"

Adding managed services

If you need Postgres, Redis, or Storage, use floo.app.toml:
[app]
name = "my-app"

[postgres]
tier = "basic"

[redis]

[services.web]
type = "web"
path = "."
port = 3000
ingress = "public"
Managed services are declared as top-level sections. They are auto-provisioned on first deploy.

Multi-service apps

Define all services in one floo.app.toml:
[app]
name = "full-stack"

[services.web]
type = "web"
path = "./web"
port = 3000
ingress = "public"

[services.api]
type = "api"
path = "./api"
port = 8080
See the Config File Spec for all shapes.

Local development

Add dev_command and migrate_command to run services locally with floo dev:
[app]
name = "full-stack"

[postgres]

[services.web]
type = "web"
path = "./web"
port = 3000
ingress = "public"
dev_command = "npm run dev"

[services.api]
type = "api"
path = "./api"
port = 8000
ingress = "public"
dev_command = "uv run uvicorn app.main:app --reload --port 8000"
migrate_command = "uv run alembic upgrade head"
migrate_command runs before the service starts. dev_command is the long-running process. Both run in the service’s path directory with managed service credentials injected.

Validate before deploying

floo preflight --json
This validates config, resolves the service graph, and shows you what Floo will build.

Config as Code

See what belongs in config and what intentionally stays outside it.

Config File Spec

Full reference for all fields, shapes, and precedence rules.