floo.app.toml. They are auto-provisioned on your first deploy.
Add to your config
tier with values basic, standard, and performance. Omitting tier defaults to basic. Cron jobs have their own fields — see below.
What gets provisioned
| Service | Section | Env vars |
|---|---|---|
| Postgres | [postgres] | DATABASE_URL |
| Redis | [redis] | REDIS_URL |
| Storage | [storage] | STORAGE_BUCKET, STORAGE_URL |
| Cron | [cron.<name>] | n/a (runs commands in a service’s container) |
Env var scoping
Managed service env vars (DATABASE_URL, REDIS_URL, STORAGE_BUCKET) are provisioned at app scope and available to all services by default.
In multi-service apps with a frontend, this means DATABASE_URL is visible to your web container. If that’s a concern, set secrets on specific services instead:
Deploy and verify
Tiers
Postgres
| Basic (default) | Standard | Performance | |
|---|---|---|---|
| Max connections | 5 | 15 | 50 |
| Statement timeout | 30s | 60s | 120s |
| Idle-in-transaction timeout | 60s | 120s | 300s |
| work_mem | 64 MB | 128 MB | 256 MB |
basic. Move to standard if you have multiple services sharing one database or need longer queries.
Redis
Redis is provisioned via Upstash (serverless). All tiers use the same infrastructure. Omittier.
Storage
Storage is provisioned as a GCS bucket. All tiers use the same infrastructure. Omittier.
Usage metering
| Resource | Metered by |
|---|---|
| Compute (Cloud Run) | per vCPU-second + per GiB-second |
| Postgres | shared instance, metered by compute |
| Redis | serverless (Upstash), metered by commands |
| Storage | per GB stored + per operation |
| Bandwidth | per GB egress |
Databases
Code examples and debugging for Postgres and Redis.
Cloud Storage
Upload, download, and signed URL patterns.
Cron Jobs
Schedule recurring tasks inside your app’s containers.