Хостинг для Django: установка и деплой на сервер, коротко и с данными

Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 5 вопросов. Полный разбор с примерами: Хостинг для Django: установка и деплой на сервер.

Коротко

Хостинг для Django выбирают из двух вариантов: платформа деплоя из Git с Dockerfile, где не нужно администрировать систему, или VPS, где gunicorn работает под systemd за Nginx. Внутри любого варианта одинаковый набор: выключенный DEBUG, список ALLOWED_HOSTS, PostgreSQL вместо SQLite и отдельное место для статики и загрузок. Без администрирования Django отправляют на платформу деплоя с Dockerfile, а вместе с Celery, Redis и своей PostgreSQL ставят на VPS: gunicorn под systemd за Nginx.

Конспект по разделам

Установка Django на Ubuntu: окружение и первый проект

Проверка: python manage.py runserver откроет сайт на порту 8000, но только для разработки. На сервере его заменяет gunicorn, как в разделах ниже.

Куда деплоить Django: App Platform, VPS или Docker

Платформа в Таймвеб Клауд принимает Docker-приложения из Git, тарифы от 1 ₽ в месяц на 14 октября 2026. Если нужна своя среда, то для старта хватит VPS с 1 ядром и 2 ГБ памяти: MSK Ultra 30 стоит 3 000 ₽ в месяц. Каждый воркер gunicorn держит копию проекта в памяти, а PostgreSQL на том же сервере забирает свою долю, поэтому при росте добавляйте память раньше ядер.

Настройки Django перед запуском на сервере

Основа проекта из startproject рассчитана на разработку. Для сервера значения читают из переменных окружения, а секреты не хранят в репозитории: Строка с SECURE_PROXY_SSL_HEADER нужна, когда HTTPS принимает прокси перед gunicorn: без неё Django считает соединение небезопасным. Команда python manage.py check --deploy перечисляет всё, что ещё стоит поправить.

Django в Docker: Dockerfile, gunicorn и PostgreSQL

Миграции и сбор статики выполняются при запуске, а не при сборке образа: на этапе сборки переменных окружения ещё нет, и настройки с обязательным SECRET_KEY не загрузятся. Без Nginx статику отдаёт пакет WhiteNoise, его добавляют в MIDDLEWARE сразу после SecurityMiddleware. Порт открыт только на локальном адресе: наружу сайт выходит через Nginx или Caddy.

Деплой Django на VPS: gunicorn, Nginx и статика

Служба systemd для Django пишется так же, как для любого Python-приложения, образец лежит на странице хостинг с поддержкой Python. Меняется одна строка: gunicorn config.wsgi:application. Перед запуском выполните python manage.py migrate и collectstatic.

Задеплойте приложение из репозитория

Подключите репозиторий, выберите фреймворк или Docker, домен и SSL выдаются сразу.

Данные

ВариантПодходит, еслиЧто делать самому
App PlatformОдин сайт, нужен деплой из Git без админстваDockerfile, внешняя база, S3 для файлов
VPS без DockerРядом Celery, Redis, cron, свои пакетыgunicorn, Nginx, обновления системы
VPS с Docker ComposeНесколько проектов, нужен одинаковый запуск вездеcompose-файл, тома, резервные копии

Данные на 14 октября 2026.

Вопросы и ответы

Как развернуть Django на сервере с нуля?

Создать виртуальное окружение, поставить зависимости, выставить DEBUG=False и ALLOWED_HOSTS, выполнить migrate и collectstatic, запустить gunicorn под systemd и поставить перед ним Nginx с HTTPS.

Почему Django на сервере не показывает статику после выключения DEBUG?

При DEBUG=False Django статику не отдаёт. Выполните collectstatic и раздайте каталог STATIC_ROOT через Nginx или подключите WhiteNoise.

Можно ли оставить SQLite для Django на сервере?

Для небольшого сайта с редкими записями можно, если файл базы лежит на постоянном диске или в томе. Для нескольких воркеров и роста нагрузки переходят на PostgreSQL.

Что делать, если Django отвечает 400 Bad Request на сервере?

Чаще всего домена нет в ALLOWED_HOSTS. Для форм по https проверьте ещё CSRF_TRUSTED_ORIGINS: адрес пишется вместе со схемой.

Нужен ли Docker для запуска Django на VPS?

Нет, хватит venv и systemd. Docker нужен платформе деплоя и удобен, когда на сервере живёт несколько проектов с разными версиями Python.