Deploy a Python app to floom from any GitHub Actions workflow. One @app.action becomes a live URL, REST API, web UI, and MCP tool — in 45 seconds.
- uses: floomhq/deploy-action@v1
with:
api-key: ${{ secrets.FLOOM_API_KEY }}| Input | Required | Default | Description |
|---|---|---|---|
api-key |
Yes | — | Floom API key. Store as a repository secret. |
name |
No | repo name | App name on floom. |
path |
No | . |
Path to the directory containing main.py. |
url |
No | https://api.floom.dev |
Floom API URL. Override for self-hosted. |
network |
No | false |
Enable outbound HTTP from the sandbox. |
| Output | Description |
|---|---|
app-url |
Live run page URL |
project-id |
Project ID |
share-url |
Public share link |
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: floomhq/deploy-action@v1
id: deploy
with:
api-key: ${{ secrets.FLOOM_API_KEY }}
name: my-app
- run: echo "Live at ${{ steps.deploy.outputs.app-url }}"- uses: floomhq/deploy-action@v1
with:
api-key: ${{ secrets.FLOOM_API_KEY }}
path: ./backend
name: my-api
network: true- uses: floomhq/deploy-action@v1
with:
api-key: ${{ secrets.FLOOM_API_KEY }}
url: https://api.your-floom.com
name: my-app- uses: floomhq/deploy-action@v1
id: deploy
with:
api-key: ${{ secrets.FLOOM_API_KEY }}
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `Deployed: ${{ steps.deploy.outputs.app-url }}`
})A floom app is a single main.py file:
from floom import app, remember
@app.action
def run(text: str, top_n: int = 5) -> dict:
count = (remember("runs") or 0) + 1
remember("runs", count)
return {"result": text[:top_n], "total_runs": count}@app.actionon every function you want exposed- Type hints become form fields and API parameters
- Return a
dict— rendered automatically (lists become tables, images become previews) remember(key, value)/remember(key)for persistent state
Full guide: BUILDING.md
Sign up at floom.dev or run floom self-hosted:
docker run -p 3000:3000 -p 3001:3001 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp/floom-workspaces:/tmp/floom-workspaces \
-v /tmp/floom-storage:/tmp/floom-storage \
ghcr.io/floomhq/floomMIT