Skip to main content
Use this page when your app needs a managed database, cache, or bucket.

What Floo Offers

ServiceDeclare in floo.app.tomlMain env varsGood for
Postgres[postgres]DATABASE_URLrelational app data
Redis[redis]REDIS_URLcache, queue state, short-lived data
Storage[storage]GCS_BUCKET, GOOGLE_CLOUD_PROJECTuploads, generated files, assets

Add Them To floo.app.toml

If you need managed services, prefer a root floo.app.toml even for a one-service repo:
[app]
name = "crm"

[postgres]
enabled = true
tier = "basic"

[redis]
enabled = true
tier = "basic"

[storage]
enabled = true
tier = "basic"

[services.web]
type = "web"
path = "."
port = 3000
ingress = "public"
Accepted fields today:
  • enabled with a default of true
  • tier with valid values basic, standard, and performance

What The First Deploy Does

  1. Floo reads your deployable services from config.
  2. Floo reads any top-level managed-service declarations from floo.app.toml.
  3. The first real deploy provisions any missing Postgres, Redis, or Storage resources.
  4. Floo injects the resulting env vars into the app environment.
  5. Future deploys reuse those resources until you remove them.
Run a dry run first, then let the first real deploy create the backing infrastructure:
floo deploy --dry-run --json
floo apps github connect owner/repo --app my-app
floo deploy watch --app my-app

Verify What Arrived

floo env list --app my-app
floo env get DATABASE_URL --app my-app
floo env get REDIS_URL --app my-app
floo env get GCS_BUCKET --app my-app
floo env get GOOGLE_CLOUD_PROJECT --app my-app

Tiers And Plan Limits

Managed-service tiers accept basic, standard, and performance. Floo can clamp the effective tier based on the app’s plan, so keep docs and examples on basic unless you are intentionally documenting a higher-plan setup.