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

Деплой приложения Django

Деплой проекта

Шаг 1. Заказ сервиса

Чтобы развернуть приложение Django, перейдите в раздел Apps и кликните на кнопку «Создать».

Выберите Backend-приложение.

Step1

Шаг 2. Подключение репозитория

Если вы уже авторизованы в аккаунте GitHub, GitLab или Bitbucket, панель автоматически отобразит доступные репозитории. Выберите нужный.

37513073 880a 4d69 96ca E49b6b66fb43

Если вы авторизованы, но нужного репозитория нет в списке

3f31ba98 1140 4674 8a28 744638edfede

  1. Кликните «Добавить аккаунт».

  2. Выберите платформу.

  3. Авторизуйтесь при необходимости.

  4. Выберите нужные репозитории и сохраните изменения.

  5. Выберите в панели репозиторий для деплоя. 

Если вы еще не авторизованы

Step2

  1. Кликните GitHub, GitLab или Bitbucket.

  2. Авторизуйтесь в своем аккаунте.

  3. Предоставьте доступ к нужным репозиториям.

  4. Выберите в панели репозиторий для деплоя. 

Шаг 3. Регион и конфигурация сервера

Приложение Django должно быть развернуто на отдельном облачном сервере. Выберите регион размещения сервера и его конфигурацию. 

Af9f847d C518 4416 Bed7 1579e16d8b14

В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.

Шаг 4. Настройка параметров сборки

D52d9202 A36d 4ccd 827d 646814774975

1. Выберите окружение Python, далее Django из списка фреймворков.

2. Сервис автоматически определит команду сборки и директорию сборки для вашего проекта, поэтому эти параметры можно оставить без изменений. Если в проекте есть файл requirements.txt, мы поставим зависимости из него.

По умолчанию для сборки приложения Django мы выполним следующее:

apt-get install -y python3 python3-pip gunicorn python3-psycopg2 libpq-dev python-dev default-mysql-client python3-dev default-libmysqlclient-dev python3-mysqldb --fix-missing
pip3 install psycopg2 django flask
ln /usr/bin/python3 /usr/bin/python -sf
ln /usr/bin/pip3 /usr/bin/pip -sf

 Также, при наличии requirements.txt:

pip3 install --upgrade -r requirements.txt

Если вы понимаете, что вам нужно модифицировать процесс сборки, вы можете указать дополнительную команду сборки (несколько команд можно объединять с помощью &&).

В качестве команды запуска по умолчанию будет использоваться:

python3 manage.py runserver 0.0.0.0:8000

Убедитесь, что файл запуска имеет имя manage.py.

При необходимости вы также можете задать переменные. Например, чтобы запустить приложение в режиме отладки, укажите ключ DEBUG и значение True. Чтобы задать хосты, с которых Django может получать запросы, укажите ключ DJANGO_ALLOWED_HOSTS, а в значении задайте IP-адреса или хостнеймы. Можно указать несколько хостов через запятую, без пробелов. По умолчанию эта переменная принимает значение 127.0.0.1,localhost.

Подробнее о настройках можно почитать в документации Django.

3. Выберите ветку для деплоя.

4. По умолчанию мы включаем опцию «Сборка по последнему выполненному коммиту». В этом случае сервис Apps выполнит деплой по самому актуальному коммиту, а в дальнейшем будет автоматически пересобирать приложение при добавлении новых коммитов в репозиторий.

При необходимости вы сможете отключить автодеплой в дальнейшем.

Если вы хотите выбрать конкретный коммит вручную — отключите эту опцию.

A3215560 C7af 42a5 Aefd Be24cea7f387

5. Задайте свое имя приложения, если требуется, и комментарий к нему. Также выберите, в какой проект его нужно добавить.

У вас будет возможность внести изменения в любые из этих параметров в дальнейшем и перезапустить деплой с новыми настройками, если потребуется.

Шаг 5. Деплой

Нажмите «Запустить деплой». Как только процесс начнется, вы увидите лог деплоя на вкладке «Деплой».

Как правило, он содержит всю необходимую информацию для устранения возможных ошибок. Если что-то пойдет не так, например, из-за наличия ошибок в коде, в логе будут выведены уведомления о них с уточнением причины проблемы. 

При первом развертывании проекта установка сервера может занять некоторое время. Как только процесс завершится, статус приложения обновится, а запись о завершении будет выведена в логе.

Group 1321314123

Готово! Ваш проект развернут и готов к работе.

В дальнейшем Apps будет отслеживать обновления в репозитории и, если включен автодеплой, автоматически перезапускать проект с новыми изменениями.

IP-адрес приложения и бесплатный технический домен, привязанный к нему по умолчанию, можно найти на вкладе «Дашборд». Приложение будет доступно по 443 порту; порт 80 также открыт.

Без Названия

Устранение неполадок

Не удается выполнить развертывание

Если с развертыванием возникают проблемы, в первую очередь проверьте лог деплоя. Вы сможете определить, в какой момент что-то пошло не так. 

Зачастую проблемы связаны с командой запуска. Проверьте, что всё в вашей среде разработки работает с gunicorn. Убедитесь, что все модули, необходимые для запуска приложения, присутствуют в файле requirements.txt.

DisallowedHost at /Invalid HTTP_HOST

Проблема возникает в случае, если в файле settings.py не задано имя хоста. 

Данная настройка является мерой безопасности для предотвращения атак с подменой HTTP-заголовка Host (HTTP Host header attacks).

Для устранения проблемы нужно внести изменения в файл settings.py, указав в директиве ALLOWED_HOSTS используемый вами домен, например: 

ALLOWED_HOSTS = ["your.domain.com"]

Вы также можете разрешить все домены, если не хотите использовать эту меру безопасности: 

ALLOWED_HOSTS = ["*"]

 

Была ли статья полезна?

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону