How to deploy a Starlette app | Ample
The short version
To deploy a Starlette app on Ample, run ample deploy . --name <app-name> --public --start "python3 run.py" in the project directory, or ask your coding agent to deploy it to Ample. Ample builds it on the python-3.12 template, starts it with python3 run.py and returns a public HTTPS URL. Python start commands are not inferred, so the command passes --start.
Deploy Starlette
Ask your coding agent
Install the Ample CLI and create an account (no browser or card needed), then ask Claude Code, Codex, Cursor or any agent with a shell to deploy the project. See Ample for coding agents.curl -fsSL https://get.ample.computer/install.sh | sh ample auth signup # then, in your agent: # "Deploy this Starlette app to Ample"Or deploy from the CLI
Run the deploy once from the project directory. It waits until the app is live or failed and prints the URL; exit 0 is live, 1 failed, 2 needs input.ample deploy . --name <app-name> --public --start "python3 run.py"Or use MCP
Agents connected to the Ample MCP server (https://api.ample.computer/mcp, orample mcpover stdio) callample_deploywith the same arguments.Verify
Open the URL. If the deploy failed, read the build log, then the runtime log, fix the cause and deploy again.ample logs <deployment_id> --kind build
What Ample runs
| Template | python-3.12 |
|---|---|
| Install | python3 -m pip install --target .ample/python -r requirements.txt |
| Start | PYTHONPATH=.ample/python:${PYTHONPATH:-} python3 run.py |
| Tested size | s-1vcpu-1gb |
Verified on Starlette: the app built and started with the documented commands and answered on its public HTTPS URL. Build and start: pip install into .ample/python from requirements.txt, then uvicorn from run.py reading PORT on the python-3.12 template.
Last verification (September 21, 2026): Starlette pattern fixture deployed on Ample (pip install into .ample/python from requirements.txt, then uvicorn from run.py reading PORT on the python-3.12 template); for this guide: the app built and started with the documented commands and answered on its public HTTPS URL.
Before you deploy
You need
- A Starlette project (pip install into .ample/python from requirements.txt, then uvicorn from run.py reading PORT on the python-3.12 template)
- An Ample account token with servers:write
Know the limits
- Verified on the python-3.12 template at s-1vcpu-1gb; other sizes and Starlette major versions are not verified.
Frequently asked questions
Do I need a Dockerfile to deploy Starlette?
No. Ample detects Starlette from the repository and builds it from source on the python-3.12 template. Dockerfile build steps are not run.
How do I add a database to a Starlette app?
Leave DATABASE_URL unset and deploy: when the code needs Postgres, MySQL, Redis or MongoDB, Ample creates a managed database and passes its connection string to the app. See Connect Postgres for Starlette.
What does it cost to host a Starlette app on Ample?
The Free plan runs 2 apps at once with no card and a hard monthly budget, so it never bills you. Larger needs are priced on volume; see pricing.
What if the deploy fails?
ample deploy waits until the app is live or failed. A failure returns who must act, a diagnosis and a suggested fix; read the logs with ample logs <deployment_id> --kind build. See Diagnose deployment failures for Starlette.
More for Starlette
Starlette How to serve Starlette public assets through a CDN on Ample
Starlette How to set environment variables and secrets for a Starlette app on Ample
Starlette How to connect a Starlette app to Postgres on Ample
Starlette How to fix a failed Starlette deploy on Ample
Starlette How to use S3-compatible storage from a Starlette app on Ample
Starlette How to serve private files from a Starlette app on Ample
Starlette How to run database migrations for a Starlette app on Ample