Skip to main content
The --app flag is optional inside a directory with floo.app.toml. Use it when running commands from elsewhere.

Ship changes

Commit and push to GitHub. The deploy triggers automatically.

Find the command

Before you connect: a human must install the floo GitHub App in a browser once per GitHub account that owns repos to deploy. An organization installation does not cover personal-account repos, or vice versa. When the App is missing, connect opens a setup link, or prints it with --no-browser (implied by --json); authorize floo with GitHub there to link the installation to your floo org. If you installed without opening a setup link, run floo apps github setup to link it.

Task recipes

Add env vars and redeploy

Add a database

Declare the database in floo.app.toml:
Preflight, commit, and push the declaration:
The next deploy provisions it and injects DATABASE_URL plus standard PG* variables. Postgres is fully isolated between dev and prod. Declare Redis with type = "redis" and Storage with type = "storage"; see Managed Services: Dev and prod isolation for the full model.

Add a custom domain

Declare the domain in floo.app.toml, naming your target service:
Commit and push the config, then wait for that commit’s dev deploy to go live. Release it to prod and read the DNS records:
Publish the traffic and certificate CNAME records printed by show at your DNS provider, then watch activation:
See Custom domains for DNS setup and troubleshooting.

Roll back a bad deploy

Debug a failing deploy

How floo works

The mental model. Config in the repo, GitHub-backed deploys, CLI-first.

Configuration

Understand floo.app.toml and how services are declared.