---
title: "Deploy Django on your own server - Deplo"
description: "Push a Django project and Railpack builds it, runs your migrations and serves it with Gunicorn, on a server you own."
url: "https://deplo.build/frameworks/django"
image: "https://deplo.build/api/media/file/og_cover.png"
updated: "2026-10-09"
---

# Deploy Django on your own server

Push a Django project and Railpack builds it, runs your migrations and serves it with Gunicorn, on a server you own.

## From repo to live in three steps

1. Connect the repository that holds your Django app.
2. Railpack recognises the Django project and builds it into an image.
3. Push to the branch: every push builds and rolls out a new version.

## What Deplo sets up

- Recognised from manage.py and Django among the dependencies.
- Dependencies installed with pip, Poetry, PDM, uv or Pipenv, whichever the repository uses.
- python manage.py migrate runs before Gunicorn starts the app.
- HTTPS through Traefik as soon as the domain points at the server.

Deplo builds with Railpack by default, so a Django project needs no Dockerfile to get started.

[Learn more](https://deplo.build/docs/concepts/what-happens-on-a-deploy#the-image-is-built)

## Django on Deplo

Short answers to what comes up before moving a Django app onto your own server.

### How does Railpack find the WSGI app?

From the WSGI_APPLICATION setting, or from the RAILPACK_DJANGO_APP_NAME variable when you set it.

### Can I run the database next to it?

Yes. Managed databases live in the same environment and reach the app over the internal network.

### Where do environment variables go?

In the app's settings, per environment. They are available during the build too, and secret values are write only: nothing reads them back.

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://deplo.build/#organization",
      "name": "Deplo",
      "url": "https://deplo.build",
      "description": "Deploy apps from Git, Docker images or Compose on your own servers with Deplo. Open source, automatic HTTPS, backups and no per-seat fees.",
      "logo": {
        "@type": "ImageObject",
        "url": "https://deplo.build/api/media/file/og_logo.png",
        "width": 824,
        "height": 824
      },
      "sameAs": [
        "https://ds.deplo.build",
        "https://x.com/deplocloud",
        "https://www.instagram.com/deplocloud",
        "https://github.com/DeploCloud/deplo"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://deplo.build/#website",
      "name": "Deplo",
      "url": "https://deplo.build",
      "description": "Deploy apps from Git, Docker images or Compose on your own servers with Deplo. Open source, automatic HTTPS, backups and no per-seat fees.",
      "publisher": {
        "@id": "https://deplo.build/#organization"
      }
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Frameworks",
      "item": "https://deplo.build/frameworks"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Deploy Django on your own server",
      "item": "https://deplo.build/frameworks/django"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How does Railpack find the WSGI app?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "From the WSGI_APPLICATION setting, or from the RAILPACK_DJANGO_APP_NAME variable when you set it."
      }
    },
    {
      "@type": "Question",
      "name": "Can I run the database next to it?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Managed databases live in the same environment and reach the app over the internal network."
      }
    },
    {
      "@type": "Question",
      "name": "Where do environment variables go?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "In the app's settings, per environment. They are available during the build too, and secret values are write only: nothing reads them back."
      }
    }
  ]
}
```
