For Django
Django hosting,
done properly
Real VMs for Gunicorn or Uvicorn, S3-compatible storage for media, global CDN with zero egress fees. The classic Django deployment — wired up the way you'd wire it yourself, but quicker.
# settings.py
DEFAULT_FILE_STORAGE = 'storages.backends.s3.S3Storage'
STATICFILES_STORAGE = 'storages.backends.s3.S3Storage'
AWS_S3_ENDPOINT_URL = 'https://storage.edge.run'
AWS_STORAGE_BUCKET_NAME = 'media'
# Provision the VM
$ edge compute create \
--image ubuntu-24-04 --plan small \
--script ./bootstrap-django.sh
# CDN out front
$ edge cdn create app.example.com \
--origin https://<vm-ip>
Why Django teams pick Edge
PaaS-style simplicity, VPS-style price, no proprietary buildpacks.
Gunicorn / Uvicorn on real VMs
Run any WSGI or ASGI server (Gunicorn, Uvicorn, Granian, Daphne) on a sized-to-fit VM. Predictable RAM and CPU.
S3 storage backend
Wire `django-storages` to Edge Storage and use it as the default for `MEDIA_ROOT` and `STATIC_ROOT`. Works exactly like AWS S3.
PostgreSQL on the same network
Run Postgres on the same VM, a separate VM, or your existing managed provider. Low-latency, no egress fees between Edge resources.
On-the-fly image transforms
Skip the `sorl-thumbnail` queues — generate responsive variants from a URL via Edge Image Optimization.
Global CDN, zero egress
Front collected static and media files through the CDN. Massive cache hit rates on the things your users actually load.
Agentic deployments
Tell the Edge agent to deploy your Django app to a domain — it provisions the VM, sets up DNS and adds the CDN.
Reference architecture
How Django maps to Edge
Standard WSGI/ASGI on a VM, media in object storage, CDN out front.
Runs Gunicorn (WSGI) or Uvicorn (ASGI) behind Nginx/Caddy
Backs `django-storages` for `STATICFILES_STORAGE` and `DEFAULT_FILE_STORAGE`
Caches `/static/` and `/media/` URLs globally
On-the-fly thumbnails, AVIF/WebP, smart cropping
Anycast DNS for the apex, www and admin subdomains
# /etc/systemd/system/django.service
[Service]
WorkingDirectory=/srv/app
ExecStart=/srv/app/.venv/bin/gunicorn \
myproject.wsgi:application \
--workers 4 --bind 127.0.0.1:8000
Restart=always
[Install]
WantedBy=multi-user.target
Common questions
WSGI or ASGI?
Either. Gunicorn for classic Django, Uvicorn or Daphne for ASGI/Channels. Both run as standard Python processes on an Edge VM behind a reverse proxy.
Where does Postgres go?
For small to medium loads, run it on the same VM. For larger loads, give it its own VM (private network keeps the latency low) — or point Django at your existing managed Postgres provider.
How do I deploy?
Standard `git pull` + `pip install` + `manage.py migrate` + `manage.py collectstatic` + restart. Wrap it in a CI step or systemd path unit.
How does this compare to PaaS like Heroku?
Cheaper, faster (real CPU and disk), and you keep control of the full Python environment. The trade-off is one bootstrap script — and we provide a sensible starter.
By Stack
Other stacks on Edge
Ship Django on Edge
30-day trial. Bring an existing project or start fresh.