## The short version

To deploy a Django 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 Django

1. 1

### 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](/content/agents/index.html).

```bash
curl -fsSL https://get.ample.computer/install.sh | sh
ample auth signup
# then, in your agent:
# "Deploy this Django app to Ample"
```

2. 2

### 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.

```bash
ample deploy . --name <app-name> --public --start "python3 run.py"
```

3. 3

### Or use MCP

Agents connected to the Ample MCP server (`https://api.ample.computer/mcp`, or `ample mcp` over stdio) call `ample_deploy` with the same arguments.

4. 4

### Verify

Open the URL. If the deploy failed, read the build log, then the runtime log, fix the cause and deploy again.

```bash
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` |

Serve project.wsgi with waitress from run.py reading PORT; pass --start "python3 run.py". Static files and collectstatic are not covered. Ample detects the runtime, installs dependencies, runs the build when present and starts the app on the python-3.12 template behind a public HTTPS URL.

Last verification (September 20, 2026): Django 5 project with dj-database-url and psycopg: the managed PostgreSQL database was auto-provisioned, python3 manage.py migrate ran as the release command, and /db and /migrated reported postgres=ok and the migrated marker.

## Before you deploy

### You need

- A requirements.txt (or pyproject) and a start command that reads PORT and binds 0.0.0.0
- An Ample account token with servers:write

### Know the limits

- Verified on the python-3.12 template at s-1vcpu-1gb; other templates and sizes are not verified by this recipe.
- ALLOWED_HOSTS must include the Ample hostname (the fixture uses *).
- collectstatic and static file serving are not verified.

## Move a Django app to Ample

- [How to move a Django app from AWS EC2 to Ample](/content/migrate/aws-ec2-app/django/index.html)
- [How to move a Django app from DigitalOcean Droplet to Ample](/content/migrate/digitalocean-droplet-app/django/index.html)
- [How to move a Django app from Fly.io to Ample](/content/migrate/fly-io-app/django/index.html)
- [How to move a Django app from Heroku to Ample](/content/migrate/heroku-app/django/index.html)
- [How to move a Django app from Netlify to Ample](/content/migrate/netlify-web-app/django/index.html)
- [How to move a Django app from Railway to Ample](/content/migrate/railway-app/django/index.html)
- [How to move a Django app from Render web service to Ample](/content/migrate/render-web-service/django/index.html)
- [How to move a Django app from Vercel to Ample](/content/migrate/vercel-app/django/index.html)

## Frequently asked questions

### Do I need a Dockerfile to deploy Django?

No. Ample detects Django 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 Django 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 Django](/content/guides/django/database-connection/index.html).

### What does it cost to host a Django 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](/content/pricing/index.html).

### 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 Django](/content/guides/django/deployment-diagnostics/index.html).

## More for Django

[Django **How to serve Django public assets through a CDN on Ample**](/content/guides/django/cdn-assets/index.html) [Django **How to set environment variables and secrets for a Django app on Ample**](/content/guides/django/configuration-secrets/index.html) [Django **How to connect a Django app to Postgres on Ample**](/content/guides/django/database-connection/index.html) [Django **How to fix a failed Django deploy on Ample**](/content/guides/django/deployment-diagnostics/index.html) [Django **How to use S3-compatible storage from a Django app on Ample**](/content/guides/django/object-client/index.html) [Django **How to serve private files from a Django app on Ample**](/content/guides/django/private-file-access/index.html) [Django **How to run database migrations for a Django app on Ample**](/content/guides/django/schema-changes/index.html)
