floo.service.tomlfor a single servicefloo.app.tomlfor multi-service apps, app-level overrides, and managed services
App Resolution Order
When you run a command without--app, the CLI walks up from the current directory and resolves the app in this order:
--app <name>if you passed it- the nearest
floo.service.toml - the nearest
floo.app.toml
floo.service.toml wins for app resolution.
Service Discovery Modes
Floo currently resolves services in three shapes:Single-service
Use one rootfloo.service.toml:
Single-service with managed services
If one deployable service also needs managed Postgres, Redis, or Storage, prefer a rootfloo.app.toml:
Inline multi-service
Put deployable services directly infloo.app.toml with type, path, and port:
Delegated multi-service
Declare service paths infloo.app.toml, then keep the service details inside each service directory’s floo.service.toml:
Override Rules
The shipped CLI applies these precedence rules today:--appoverrides app name inference from disk- per-service resources override global
[resources]infloo.app.toml - in delegated mode,
floo.app.tomlcan overrideingressanddomainfrom a sub-service file - for deploy access mode,
[environments.dev].access_modewins over[app].access_mode, which wins overfloo.service.toml
Resource Limits
You can set shared defaults infloo.app.toml and override them per service:
What Floo Requires
The CLI will fail preflight if:- service names are duplicated
- a service port is invalid
- an inline app also keeps a conflicting subdirectory
floo.service.toml - a multi-service app has no public service
floo.app.toml, not floo.service.toml.
When To Reach For --app
Use --app when:
- you are running commands outside the repo
- the working directory has multiple Floo configs above it
- you want to target an existing app regardless of local config