Django on Heroku
Heroku publishes its own guide for deploying Django.
Python web framework with an ORM, admin interface and long-running server process.
What Django needs.
Every host claims to run Django, so the claim on its own decides nothing. These are the things Django actually requires from the platform underneath it, and what Heroku publishes about each. Heroku documents 4 of the 4.
Persistent processes
Supported
Django is served by a WSGI or ASGI worker that stays up. Celery workers are a second long-running process alongside it.
Sources (1) →Sources ↓
- Dynos (App Containers) | Heroku Dev Center ↗
“Worker dynos are typically used to run background jobs, queueing systems, and timed jobs. You can have multiple kinds of worker dynos in your application.”
Read 2026-09-05 · official docs
Managed databases
Supported
Django's ORM, migrations and admin all assume a real relational database. Postgres is the default assumption in its own documentation.
Sources (1) →Sources ↓
- Heroku Postgres | Heroku Dev Center ↗
“Heroku Postgres is a managed SQL database service provided directly by Heroku. You can access a Heroku Postgres database from any language with a PostgreSQL driver, including all languages Heroku officially supports.”
Read 2026-09-05 · official docs
Managed connection pooling
Limited
Django opens a database connection per worker. Without pooling, a modest traffic spike exhausts Postgres connection slots long before it exhausts CPU.
Sources (1) →Sources ↓
- Server-Side Connection Pooling for Heroku Postgres | Heroku Dev Center ↗
“Server-side connection pooling is available for Standard, Premium, Private, and Shield-tier databases. [...] Server-side connection pooling isn't available for Essential-tier databases.”
Read 2026-09-05 · official docs
Scheduled jobs
Supported
Management commands are how Django does recurring work. With no scheduler you need a second service whose only job is to trigger them.
Sources (1) →Sources ↓
- Heroku Scheduler | Heroku Dev Center ↗
“Scheduler is a free add-on for running jobs on your app at scheduled time intervals, much like cron in a traditional server environment.”
Read 2026-09-05 · official docs
What Heroku documents.
Heroku publishes its own guide for deploying Django.
This Procfile requires Gunicorn, the production web server that we recommend for Django applications.
Sources (1) →Sources ↓
- Configuring Django Apps for Heroku | Heroku Dev Center ↗
“This Procfile requires Gunicorn, the production web server that we recommend for Django applications.”
Read 2026-09-05 · official docs
Django features on Heroku
Capabilities Heroku documents specifically for Django, with the constraint it documents alongside each.
background_workers
Supported
Celery is fully supported on Heroku and just requires using one of our add-on providers to implement the message broker and result store [...] You deploy Celery by running one or more worker processes.
scheduled_jobs
Supported
Scheduler is a free add-on for running jobs on your app at scheduled time intervals, much like cron in a traditional server environment.
persistent_disk
Not supported
Each dyno gets its own ephemeral filesystem, with a fresh copy of the most recently deployed code. [...] Any files written get discarded the moment the dyno stops or restarts, including automatic restarts.
connection_pooling
Supported
Server-side connection pooling for Heroku Postgres helps applications use database connections efficiently to avoid reaching your database's plan connection limits. [...] Server-side connection pooling is available for Standard, Premium, Private, and Shield-tier databases.
one_off_commands
Supported
One-off dynos allow you to perform administrative or maintenance tasks for your app and are helpful for debugging. [...] Running a console or a REPL shell to run arbitrary code or inspect the app's models against the live database
Sources (5) →Sources ↓
- Using Celery on Heroku | Heroku Dev Center ↗
“Celery is fully supported on Heroku and just requires using one of our add-on providers to implement the message broker and result store [...] You deploy Celery by running one or more worker processes.”
Read 2026-09-13 · official docs
- Heroku Scheduler | Heroku Dev Center ↗
“Scheduler is a free add-on for running jobs on your app at scheduled time intervals, much like cron in a traditional server environment.”
Read 2026-09-13 · official docs
- Dynos (App Containers) | Heroku Dev Center ↗
“Each dyno gets its own ephemeral filesystem, with a fresh copy of the most recently deployed code. [...] Any files written get discarded the moment the dyno stops or restarts, including automatic restarts.”
Read 2026-09-13 · official docs
- Server-Side Connection Pooling for Heroku Postgres | Heroku Dev Center ↗
“Server-side connection pooling for Heroku Postgres helps applications use database connections efficiently to avoid reaching your database's plan connection limits. [...] Server-side connection pooling is available for Standard, Premium, Private, and Shield-tier databases.”
Read 2026-09-13 · official docs
- One-Off Dynos | Heroku Dev Center ↗
“One-off dynos allow you to perform administrative or maintenance tasks for your app and are helpful for debugging. [...] Running a console or a REPL shell to run arbitrary code or inspect the app's models against the live database”
Read 2026-09-13 · official docs
What it costs to run there.
- Entry paid plan
- $5 per month (Eco dynos plan, 1000 dyno hours shared across the account)
- Pricing model
- Usage-based on wall-clock time, prorated to the second
- When you exceed a cap
- Service sleeps: on the Eco plan ($5/month for a 1000 dyno-hour pool, the cheapest paid tier) exhausting the pool forces every Eco dyno on the account to sleep for the rest of the month, and extra hours cannot be bought
- Regions
- 2 regions on the Common Runtime, which is what a standard dyno runs in: eu (Europe) and us (United States). A further 10 — Dublin, Frankfurt, London, Montreal, Mumbai, Oregon, Singapore, Sydney, Tokyo and Virginia — exist only in Private Spaces, an Enterprise product.
Sources (3) →Sources ↓
- Eco Dyno Hours | Heroku Dev Center ↗
“The Eco dynos plan provides 1000 dyno hours for $5 per month. This dyno hours pool is shared by all Eco dynos in your account.”
Read 2026-09-05 · official docs
- Usage & Billing | Heroku Dev Center ↗
“Heroku computes usage from wall-clock time, not CPU time. Any dynos scaled above 0 accrue usage, regardless of traffic or activity. Heroku prorates all costs to the second.”
Read 2026-09-05 · official docs
- Regions | Heroku Dev Center ↗
“eu Europe Common Runtime us United States Common Runtime dublin Dublin, Ireland Private Spaces frankfurt Frankfurt, Germany Private Spaces london London, United Kingdom Private Spaces montreal Montreal, Canada Private Spaces mumbai Mumbai, India Private Spaces oregon Oregon, United States Private Spaces singapore Singapore Private Spaces sydney Sydney, Australia Private Spaces tokyo Tokyo, Japan Private Spaces virginia Virginia, United States Private Spaces”
Read 2026-09-05 · official docs
Whether it suits you.
Teams that want to deploy by pushing to Git and let the platform handle the runtime, with Postgres, a scheduler and Docker deploys available on the same platform.
Consider something else if…
The dyno filesystem is ephemeral, and a web process must respond within 30 seconds of receiving a request.
Visit Heroku documentation