Skip to main content
Still evaluating floo? Start with the introduction. This page assumes you’ve decided to build.

Before you start

You need a project directory with source code, a Dockerfile, and a GitHub repository. App names must be lowercase and hyphenated (e.g., my-saas-app). In examples below, replace owner/repo with your GitHub org and repo name. The --app flag is optional when you’re inside a directory with floo.app.toml. Use it when running commands from elsewhere.

First-time setup

Sign in once, then three commands put you on a live URL.
floo auth login                          # one-time: opens browser to sign up or log in
cd my-project

floo init my-app                         # writes floo.app.toml into the repo
floo apps github connect owner/my-project # wires the repo and triggers the first deploy
git push origin main                     # ships the committed config and kicks off the build
floo auth login opens a browser. New users create an account automatically. In headless/CI environments, use floo auth login --api-key <key>. Floo installs a GitHub webhook when you connect. After that, every git push triggers a build and deploy automatically. Check your deploy succeeded:
floo apps status my-app
Your app is live.
  • Dev URL: https://my-app-dev.on.getfloo.com
  • Every git push deploys to dev. When it’s ready, run floo releases promote --app my-app to publish to https://my-app.on.getfloo.com.
  • Watch live logs with floo logs --app my-app --follow.

Ship Changes

Commit and push to GitHub. The deploy triggers automatically.
git add . && git commit -m "feat: my change"
git push origin main
floo deploys watch --app my-app

Decision Table

I want to…Run this
Create an account or log infloo auth login
Deploy for the first timefloo apps github connect owner/repo
Ship a code changegit push origin main
Validate my config before pushingfloo preflight (local only, no auth needed)
Redeploy after env var changefloo redeploy --app my-app
Restart without rebuildingfloo redeploy --restart --app my-app
Watch a deploy in progressfloo deploys watch --app my-app
See deploy historyfloo deploys list --app my-app
Roll back to a previous versionfloo deploys rollback my-app <id>
Set an env varfloo env set KEY=val --app my-app
Add a custom domainfloo domains add example.com --app my-app
View logsfloo logs --app my-app
Run locally with prod credentialsfloo dev --app my-app (requires dev_command in config)

Common Workflows

Add env vars and redeploy

floo env set API_KEY=secret --app my-app
floo redeploy --app my-app

Add a database

Add to floo.app.toml:
[postgres]
tier = "basic"
Commit the change and push to GitHub. The database is auto-provisioned on the next deploy. Credentials arrive as DATABASE_URL.
git add floo.app.toml && git commit -m "feat: add postgres"
git push origin main

Add a custom domain

floo domains add app.example.com --app my-app
Follow the DNS instructions in the output.

Roll back a bad deploy

floo deploys list --app my-app
floo deploys rollback my-app <deploy-id>

Debug a failing deploy

floo deploys logs <deploy-id> --app my-app
floo logs --app my-app --since 1h --error

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.