> ## Documentation Index
> Fetch the complete documentation index at: https://getfloo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy an app without a GitHub repository

> One command takes the code in a local git repository to a live URL with team sign-in and Postgres. No GitHub account, no GitHub App, no browser steps besides signing in to floo.

Your agent built an app in a local folder and you want it running for your team. `floo deploy` creates a floo-hosted project, pushes the current commit, and waits until it is live at `https://<app>-dev.getfloo.app`. floo hosts the git repository, so you need no GitHub account.

Works with any app that has a `Dockerfile` and listens on `0.0.0.0:$PORT`. `floo init` does not write one: copy a recommended Dockerfile from [Dockerfiles](https://getfloo.com/docs/guides/dockerfiles.md) or the [build guides](https://getfloo.com/docs/build/nextjs.md) for Next.js, Rails, Django, FastAPI and Express.

## Agent prompt

Paste into Claude Code, Codex, Cursor, or any agent that can run shell commands. Replace `inventory` with your app name.

```text theme={null}
Deploy this app to floo. App name: inventory.
1. Install the floo CLI if `floo --version` fails: curl -fsSL https://getfloo.com/install.sh | bash. Then run `floo auth login` and have me approve the sign-in.
2. If there is no Dockerfile, add one following https://getfloo.com/docs/guides/dockerfiles.md. If there is no floo.app.toml, run `floo init inventory`. Set access_mode = "accounts" under [app] so only invited people can sign in, and add [managed.default] with type = "postgres" if the app stores data. Read DATABASE_URL from the environment.
3. Run `floo preflight --json` and fix every error.
4. Commit everything with git.
5. Run `floo deploy --json` and report the live URL. If it stops, run the command in error.suggestion and try again.
```

You approve one thing: the floo sign-in in your browser.

## By hand

```bash theme={null}
curl -fsSL https://getfloo.com/install.sh | bash
floo auth login
floo init inventory
floo preflight
git init && git add -A && git commit -m "Deploy to floo"
floo deploy
```

`floo deploy` prints each step and ends with the live URL. Run it again after every commit to ship the next version.

## floo.app.toml

A team-only app with a database:

```toml floo.app.toml theme={null}
[app]
name = "inventory"
access_mode = "accounts"

[services.web]
type = "web"
path = "."
port = 3000
ingress = "public"

[managed.default]
type = "postgres"
```

* `access_mode = "accounts"` puts floo's hosted, invite-only sign-in in front of the app. Your code reads the signed-in person from the `X-Floo-User-Email` header and writes no auth code. See [App sign-in](https://getfloo.com/docs/guides/app-auth.md).
* `[managed.default]` provisions Postgres for each environment and injects `DATABASE_URL`. See [Postgres](https://getfloo.com/docs/guides/postgres.md).
* Add `migrate_command` under `[services.web]` to run migrations before traffic moves to a new version.

## Invite your team

```bash theme={null}
floo apps invite teammate@example.com --app inventory
```

They get a one-time link. Everyone else is refused at floo's gateway before a request reaches your code.

## What happens on each run

| Run | What `floo deploy` does |
| - | - |
| First | Creates a floo-hosted project named after `[app] name`, adds a `floo` git remote, replaces the project's starter commit with yours, and waits for the deploy |
| Later | Pushes the new commit to the same project and waits for the deploy |

It stops with the exact next command when the folder isn't ready: no `floo.app.toml`, not a git repository, no commits, or uncommitted changes. All the cases are in the [`floo deploy` reference](https://getfloo.com/docs/cli/deploy#when-the-folder-isnt-ready).

## Production

`floo deploy` ships to dev. When the dev version is right, publish it:

```bash theme={null}
floo releases promote --app inventory
```

Production gets its own database. A small tool used by a few people can live in dev alone. See [Environments](https://getfloo.com/docs/guides/environments.md#the-flow).

## Move to your own GitHub repository later

You can clone the floo-hosted repository with [`floo projects clone`](https://getfloo.com/docs/cli/projects). To deploy from a repository you own on GitHub instead, follow the [Quickstart](https://getfloo.com/docs/introduction.md).

## Next steps

> [card] [floo deploy reference](https://getfloo.com/docs/cli/deploy.md)
>
> Flags, error codes, and what each run does.

> [card] [App sign-in](https://getfloo.com/docs/guides/app-auth.md)
>
> Invite-only sign-in and identity headers, with no auth code.

> [card] [Cron jobs](https://getfloo.com/docs/guides/cron-jobs.md)
>
> Run a script on a schedule inside the same app.

> [card] [App API keys](https://getfloo.com/docs/guides/app-api-keys.md)
>
> Give an agent its own scoped key to the app's API.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.