floo deploys views and manages deploy history. To deploy, push to GitHub, run floo deploy from a local git repository, or use floo redeploy; to validate config before pushing, use floo preflight.How deploys are triggered
Deploys are config-as-code and git-driven: every deploy traces back to a commit.
After
floo apps github connect <owner/repo>, a push starts the build. For a floo-hosted project, floo deploy or a push to its floo remote does. Watch progress with floo deploys watch --app <name> or in the dashboard.
Subcommands
floo deploys list
List compact deploy history, newest first, without build logs; use floo deploys logs for those.
When more rows exist, human output ends with the exact
floo deploys list ... --cursor command for the next page, and JSON output carries next_cursor and has_more.
floo deploys logs [DEPLOY_ID]
Show build logs for a deploy, or the latest deploy when DEPLOY_ID is omitted.
floo deploys watch
Stream deploy progress until the deploy finishes, with build logs as they arrive.
floo deploys status
Print a compact, agent-safe status summary of a deploy: id, commit, derived phase booleans (image_built / service_ready / host_bound), the gateway URL, a recommended next command, and deploy diagnostics. It never includes build logs, runtime audit payloads, or env-var values, so an agent can check deploy state without risking secret exfiltration.
image_built is true when the build step succeeded, false when it was skipped (for example, a restart that inherits the image), and null when evidence is missing or inconclusive. duration_ms covers the whole deploy attempt, including scheduling and rollout.
floo deploys rollback APP DEPLOY_ID
Roll back to a previous deploy. It needs confirmation: interactive mode prompts y/N; non-interactive runs require --yes.
JSON output
triggered_by is one of:
The deploy API (
GET /v1/apps/{app_id}/deploys) also returns reconciled_to_head. It is true when floo started the deploy itself to bring dev back to the latest commit on your default branch, for example after a push arrived while another deploy was running. Its triggered_by still reads github_push, and the dashboard labels it Auto redeploy.