Guides / Host multiple client Django apps without a shared server, using Django Cloud
Host multiple client Django apps without a shared server, using Django Cloud
Ten clients, ten Django apps. The tempting shortcut is one big server with ten apps on it. It is cheap until one client's traffic spike, bad deploy or security hole takes down the other nine. Here are the sane ways to run many client apps.
Option A: one server, many apps (the shared box)
- Cost: lowest.
- Risk: highest. One compromised app exposes every other app on the machine, and one runaway process slows all of them.
- Operations: you patch the operating system, rotate certificates and handle backups for everyone, forever.
Option B: one project per client, same platform
Each client gets their own app, their own settings, their own database and their own domain, but you manage them from one place.
- Cost: a bit higher, because nothing is shared.
- Risk: low. A failure stays inside one client.
- Operations: the same deploy command and the same dashboard for every client.
Option C: one cloud account per client
Everything in Option B, plus a separate cloud account for each client. This gives the strongest wall between clients and the cleanest handover, because the client can own the account.
What to standardize across clients
- One project layout. Same settings pattern, same environment variable names, same health check.
- One deploy path. A push to
maindeploys production; nothing is deployed by hand. - One runbook template. Copy it per client and fill in the differences.
- One naming rule. A project name such as
client-app-stagingtells you what it is at a glance.
Keep an inventory
Once you pass five clients, keep a simple sheet with: client, domain, where it runs, who pays, renewal dates and the person who gets the alert. Most agency incidents are not technical; they are "nobody knew that site still existed".
Or skip it
Django Cloud runs and manages several projects from a single account, each with its own settings, database and domain. Every app runs in an AWS account of its own, so a problem at one client stays at that client.
pip install djangocloud-cli
djangocloud deploy
Free plans are available for students, AWS Activate startups, open-source, non-profit and research projects. See how Django Cloud compares with other ways to host Django.
Django is a registered trademark of the Django Software Foundation. Django Cloud is not affiliated with or endorsed by it. Found a mistake in this guide? Tell us and we will fix it.