Django on Fly.io
Fly.io 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 Fly.io publishes about each. Fly.io documents 4 of the 4.
Persistent processes
Supported — A stopped or suspended Machine still bills for its root filesystem at $0.15 per GB per month.
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 ↓
- Billing - Fly.io Documentation ↗
“If you provision Machines and leave them running all month, we'll charge you a predictable amount for that Machine. [...] Stopped and suspended Machines are billed based on their root file system (rootfs) usage per second (the time they spend in the stopped or suspended state) by $0.15 per GB per month.”
Read 2026-09-27 · 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 ↓
- Pricing - Fly.io Documentation ↗
“The price of running Fly.io Managed Postgres depends on your selected Managed Postgres Plan and the amount of storage your databases use.”
Read 2026-09-27 · official docs
Managed connection pooling
Supported
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 ↓
- Cluster configuration options ↗
“All Managed Postgres clusters come with PGBouncer for connection pooling, which helps manage database connections efficiently. You can configure how PGBouncer assigns connections to clients by changing the pool mode.”
Read 2026-09-05 · official docs
Scheduled jobs
Limited
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 ↓
- fly machine run · Fly Docs ↗
“Use the --schedule flag to set the Machine's config.schedule property, which starts the Machine on a fuzzy hourly, daily, weekly, or monthly cycle.”
Read 2026-09-05 · official docs
What Fly.io documents.
Fly.io publishes its own guide for deploying Django.
Fly.io is a great place to run your Django application. fly launch can detect, configure and deploy Django apps.
Sources (1) →Sources ↓
- Django on Fly.io · Fly Docs ↗
“Fly.io is a great place to run your Django application. fly launch can detect, configure and deploy Django apps.”
Read 2026-09-05 · official docs
Django features on Fly.io
Capabilities Fly.io documents specifically for Django, with the constraint it documents alongside each.
background_workers
Supported
Process groups are a way to configure a single Fly App to run multiple different programs. [...] Every defined process runs in its own Fly Machine(s) within the app, which means they don't compete for resources, and they can be scaled by process group.
scheduled_jobs
Limited
--schedule string Schedule a Machine run at hourly, daily, weekly and monthly intervals
persistent_disk
Supported
The root file systems of a Fly Machine are ephemeral and should only be used for temporary data, application code, and runtime files that can be rebuilt from scratch during deployments or restarts. [...] Use volumes to store your database files, to save your app's state, such as configuration and session or user data, or for any information that needs to persist after deploy or restart.
connection_pooling
Supported
Your MPG plan determines the CPU and Memory configuration for your cluster. All plans include high availability, backups, and connection pooling.
one_off_commands
Supported
To SSH into your hosted Django application use the command fly ssh console. [...] The --pty flag tells the SSH server to run the command in a pseudo-terminal, which createsuperuser requires.
Sources (5) →Sources ↓
- Run multiple process groups in an app · Fly Docs ↗
“Process groups are a way to configure a single Fly App to run multiple different programs. [...] Every defined process runs in its own Fly Machine(s) within the app, which means they don't compete for resources, and they can be scaled by process group.”
Read 2026-09-13 · official docs
- fly machine run · Fly Docs ↗
“--schedule string Schedule a Machine run at hourly, daily, weekly and monthly intervals”
Read 2026-09-13 · official docs
- Fly Volumes overview · Fly Docs ↗
“The root file systems of a Fly Machine are ephemeral and should only be used for temporary data, application code, and runtime files that can be rebuilt from scratch during deployments or restarts. [...] Use volumes to store your database files, to save your app's state, such as configuration and session or user data, or for any information that needs to persist after deploy or restart.”
Read 2026-09-13 · official docs
- Managed Postgres · Fly Docs ↗
“Your MPG plan determines the CPU and Memory configuration for your cluster. All plans include high availability, backups, and connection pooling.”
Read 2026-09-13 · official docs
- Existing Django Apps · Fly Docs ↗
“To SSH into your hosted Django application use the command fly ssh console. [...] The --pty flag tells the SSH server to run the command in a pseudo-terminal, which createsuperuser requires.”
Read 2026-09-13 · official docs
What it costs to run there.
- Pricing model
- Usage-based, no compute plan tiers; billing is pro-rated for the time resources are provisioned.
- When you exceed a cap
- No plan cap to exceed — Fly bills per second for provisioned resources. The only documented enforcement is unspecified automated scaling limits, which surface as an error message (platform-wide, all plans)
- Regions
- 17 regions
Sources (2) →Sources ↓
- Pricing — Fly.io Docs ↗
“Plans get complicated, so we just charge based on usage. Pick and choose which pieces you need for your application; that's all you'll see on your invoice.”
Read 2026-09-14 · official docs
- Regions - Fly.io Documentation ↗
“You can host your apps in any of the following regions. Region ID Region Location Gateway MPG ams Amsterdam, Netherlands ✓ ✓ arn Stockholm, Sweden ✓ cdg Paris, France ✓ dfw Dallas, Texas (US) ✓ ✓ ewr Secaucus, NJ (US) ✓ fra Frankfurt, Germany ✓ ✓ gru Sao Paulo, Brazil ✓ iad Ashburn, Virginia (US) ✓ ✓ jnb Johannesburg, South Africa lax Los Angeles, California (US) ✓ ✓ lhr London, United Kingdom ✓ ✓ nrt Tokyo, Japan ✓ ✓ ord Chicago, Illinois (US) ✓ ✓ sin Singapore, Singapore ✓ ✓ sjc San Jose, California (US) ✓ ✓ syd Sydney, Australia ✓ ✓ yyz Toronto, Canada ✓ ✓”
Read 2026-09-27 · official docs
Whether it suits you.
Workloads that ship as Docker images and need placement in particular regions. Billing is purely usage-based with no plan tiers, which suits spiky or region-pinned traffic better than a flat monthly fee.
Consider something else if…
You want a predictable flat bill rather than charges that track the resources provisioned for each app.
Visit Fly.io documentation