floo.app.toml in your repo is the source of truth for app shape. The dashboard
shows its live effect and never edits it. Every field is in the
config file spec; the control-plane model is
How floo works.
What floo init creates
For a single-service project, floo init detects your runtime and writes one floo.app.toml with the service declared inline. It does not write a Dockerfile; copy one from Dockerfiles. Edit the config by hand before deploying.
Single service
Onefloo.app.toml with an inline service:
Adding managed services
Declare Postgres, Redis, or Storage infloo.app.toml:
DATABASE_URL plus PG*; named resources yield suffixed keys such as REDIS_URL_CACHE and STORAGE_BUCKET_UPLOADS. Removing a deployed declaration proposes deleting the resource. By default the resource is retained, with no review and no teardown schedule; an explicit approval policy requires review. Deleting the resource is always a separate action.
Multi-service apps
Define all services in onefloo.app.toml:
Local development
floo dev runs every service locally. Each one needs a dev_command:
floo dev runs migrate_command first, then dev_command as the long-running process, both in the service’s path directory. The managed attachment controls which services receive managed credentials.
Validate before deploying
What lives in config
See what belongs in config and what intentionally stays outside it.
Config file spec
Full reference for all fields, shapes, and precedence rules.
Scaling and availability
Choose on-demand, warm, running-worker, or paused-worker behavior.