Adios
Apps and APIs · plans from $10/month

Deploy Django.Keep settings and releases explicit.

Ship a Django project with a production WSGI process, runtime settings, database credentials, health checks, static asset decisions, and release evidence in one place.

Keep the repositoryInspect build and logsCustom domains and TLS
Adios deploy

Candidate release

Django

Healthy

SOURCE

Git

REGION

de

ROUTE

HTTPS

01Source received

02Build completed

03Runtime started

04Health check passed

Promoted route

production.adios.run

A production path for

DjangoGunicornWSGIPostgreSQLStatic assets

The production path

A working Django project still needs a safe release.

The application or service is only one part of production. Build evidence, runtime state, health, secrets, logs, routes, and the promoted version should remain inspectable together.

Keep the Django build you already use

Install Python dependencies and run the project-specific preparation your release requires. Keep collectstatic and migration decisions explicit instead of hiding them in a dashboard toggle.

Promote the version that reports healthy

Start the WSGI application with Gunicorn, bind it to the declared port, and use a health route that proves the web process is ready without mutating data.

Trace production back to source

Build output, runtime logs, health state, secrets, domains, and the promoted release stay attached to the project instead of being split across unrelated tools.

From source to release

Three steps keep the deployment path reviewable.

Use the source and production behavior the project already has. The manifest records what the platform should build or provision and how the result becomes ready.

  1. 01

    Start with source or a template

    Bring the existing repository, or inspect and deploy one of the exact starter variants linked below.

    $adios login
  2. 02

    Review the deployment contract

    Keep commands, runtime or service version, health behavior, and secret references in adios.yaml.

    $git diff -- adios.yaml
  3. 03

    Deploy and inspect the result

    Follow build and runtime evidence, verify the candidate, and open the promoted route or service connection.

    $adios up
adios.yaml
Your project
name: django-app
build_cmd: pip install -r requirements.txt && python manage.py collectstatic --noinput
start_cmd: gunicorn project.wsgi:application --bind 0.0.0.0:8000

runtime:
  name: python@3.13
  port: 8000
  health_path: /healthz
Replace project.wsgi with your module and decide separately how production migrations are approved and run.

Deployable starting points

Start Django from a template when the repository is not ready.

Choose a pip or Pipenv Django starter with Gunicorn and an Adios manifest already connected.

API starters

Python Django

FastAPI, Django, Flask, Litestar, and Sanic starters with production start commands.

Pythonpip
Template key
python-django
Runtime
python
Repository
template-python-django
Source path
.
git clone https://github.com/adiosdotdev/template-python-django.git
cd template-python-django
adios up

API starters

Python Django with Pipenv

FastAPI, Django, Flask, Litestar, and Sanic starters with production start commands.

Pythonpipenv
Template key
python-django-pipenv
Runtime
python
Repository
template-python-django-pipenv
Source path
.
git clone https://github.com/adiosdotdev/template-python-django-pipenv.git
cd template-python-django-pipenv
adios up

Before production

Verify the workload.Then promote it.

The safest first release starts with a reproducible build or service configuration and a preview that exercises the dependencies production will actually use.

Ready when…

  • Production settings do not enable DEBUG.
  • ALLOWED_HOSTS and CSRF trusted origins cover the production domain.
  • Static files and uploads have an explicit storage path.
  • Database and signing keys come from secrets.

Preview when…

  • A schema migration changes or locks production data.
  • collectstatic depends on a remote asset service.
  • The project uses native Python or image-processing libraries.

Questions, answered

What to know before deploying Django.

Review the runtime or service boundary, template path, failure behavior, and production checks before creating the first release.

Can Adios deploy an existing Django project?

Yes. Run the Adios CLI from the project root, keep the repository and dependency files you already use, and add an adios.yaml file that describes the production build, start command, port, and health path.

Do I need Docker to deploy Django?

Not for a standard supported runtime. Use the project's normal production commands in adios.yaml. If the build needs unusual operating-system packages or native libraries, verify those dependencies in a preview before promotion.

Should Django migrations run during every build?

Treat production schema changes as an explicit release step. Test them against representative data and choose an approval or workflow strategy instead of coupling every build to an automatic migration.

How should Django static files be served?

Choose a deliberate production strategy such as collected assets served by the application, object storage, or another static delivery path. Verify cache headers and URLs in the preview domain.

What happens when the build or health check fails?

The candidate release keeps its build and runtime output for inspection. It must report healthy before it becomes the promoted version serving the application route.

Can I start from a template instead of an existing repo?

Yes. This page links to the closest official Adios Django starters. Inspect the exact source variant, deploy it in the console, or clone it locally and run adios up.

The first release

Deploy Django with the source and evidence attached.

Start from the repository or a template, review the deployment contract, and inspect what becomes the promoted production version.