Skip to main content
PercherPercher

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 publish

The 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

← Browse all deploy guides