Deploy guide · runtime = "python"
Deploy Python on Percher
Generic Python runtime via Nixpacks. The bundled `python` template scaffolds a FastAPI starter (see [/deploy/fastapi](/deploy/fastapi) for a focused FastAPI guide). Use this page when you're shipping a non-FastAPI Python app — a custom WSGI/ASGI service, a Starlette or Quart app, a small uvicorn-fronted script, or anything that just needs `pip install` to run.
Why Percher fits
- Nixpacks detects `requirements.txt` or `pyproject.toml` automatically and assembles a working image without a Dockerfile.
- Native HTTPS proxy means `requests` and `httpx` reach external APIs out of the box — `HTTPS_PROXY` is honored automatically.
Quick start
bunx percher create my-app --template python
cd my-app
bunx percher publishThe first command scaffolds a working Python project plus a `percher.toml`. Publish builds and deploys it; the live URL prints on completion.
percher.toml
The canonical config for a Python app on Percher. `bunx percher init` generates this automatically when it detects Python in your project.
[app]
name = "my-app"
runtime = "python"
[web]
port = 8000
health = "/health"
Common gotchas
- The `python` template id scaffolds FastAPI — if that's not what you want, run `bunx percher init` in your existing project instead; it'll generate a `percher.toml` from whatever's already there.
- Pin the Python version with a `.python-version` file or `pyproject.toml` — without it, Nixpacks picks whatever it currently defaults to and that can drift.
- The Nixpacks fallback is slower than Percher's native node-build (~60–120 s cold). A dedicated Python builder is on the roadmap; for now, expect longer cold builds than for Node/Bun apps.
Related docs
Ready to deploy Python?
Free plan, no credit card. Live in under a minute.
Sign up free