К этому моменту мы с вами уже проделали большую работу. Проект cinemahub перестал быть набором учебных файлов — это полноценный Django-сайт с авторизацией пользователей, логикой доступа и основной моделью movies.
До сих пор мы запускали сайт локально:
через runserver, на 127.0.0.1:8000, только для себя.
Но любой реальный веб-проект рано или поздно должен выйти за пределы компьютера разработчика. Его должны увидеть другие люди. У него должен появиться адрес, сервер и постоянная работа 24/7.
С этого урока мы начинаем процесс деплоя.
Важно понимать: деплой — это не одно действие, а цепочка логически связанных шагов. Если пропустить или не понять хотя бы один из них, дальше начнутся ошибки, которые будет сложно диагностировать.
В этом уроке мы не будем устанавливать Django и запускать проект. Наша задача — подготовить фундамент:
- арендовать сервер;
- зарегистрировать доменное имя;
- связать домен с сервером;
- убедиться, что всё работает корректно.
Прежде чем переходить к практике, зафиксируем общую картину.
Любой Django-сайт в интернете существует потому что:
- есть сервер с публичным IP-адресом;
- есть доменное имя, удобное для человека;
- домен «указывает» на IP сервера;
- на сервере запущено ПО, которое обрабатывает HTTP-запросы;
- Django-приложение отвечает на эти запросы.
Сегодня мы реализуем только первые три пункта.
Для примера мы будем использовать хостинг-провайдера Beget.
Причины выбора:
- понятная панель управления;
- стабильная работа VPS;
- адекватная документация;
- возможность всё сделать руками, не «магией».
Вы можете использовать любого другого провайдера, но логика деплоя останется той же. Меняются только названия кнопок и интерфейс.
Переходим на сайт:
https://beget.com
Регистрируемся, выбирая облачные сервисы. Указываем реальные контактные данные — почту, телефон.
После регистрации вы попадаете в панель управления Beget. Это центр управления всем, что связано с вашим будущим сайтом.
VPS (Virtual Private Server) — это виртуальный сервер с собственной операционной системой, IP-адресом и root-доступом.
Для Django-проекта это оптимальный вариант, потому что:
- мы сами устанавливаем нужное ПО;
- можем гибко настраивать сервер;
- не ограничены шаблонами хостинга.
В панели Beget выбираем раздел VPS/VDS.
Для учебного проекта cinemahub достаточно минимальной конфигурации:
- самый дешёвый тариф (на момент написания — ~210 ₽/мес);
- расположение сервера — любое;
- операционная система — Ubuntu 24.04.
Мы будем ориентироваться именно на Ubuntu, все команды дальше рассчитаны на неё.
Нажимаем «Создать виртуальный сервер». Если баланс пустой — система предложит его пополнить.
Через некоторое время сервер будет создан.
На почту, указанную при регистрации, придёт письмо с:
- IP-адресом сервера;
- логином (обычно
root); - паролем.
- сохраните эти данные;
- никому их не передавайте;
- не публикуйте в репозиториях и чатах.
Без них вы не сможете подключиться к серверу.
Теперь нашему серверу нужен человеческий адрес.
В панели Beget переходим в раздел:
Домены и поддомены
Или напрямую:
https://cp.beget.com/domains
Выбираем вкладку «Регистрация доменов».
Для русскоязычных проектов чаще всего используют зону .ru.
Например:
cinemahub.rucinema-hub.rucinemahub-project.ru
Вы вводите желаемое имя и проверяете, свободно ли оно.
Если домен свободен — его можно приобрести.
При покупке домена система попросит указать данные администратора.
Рекомендуется указывать реальные сведения, потому что:
- домен юридически принадлежит администратору;
- в случае споров или восстановления доступа это критично.
После успешной покупки домен появится во вкладке «Мои домены».
Сейчас у нас есть:
- сервер с IP-адресом;
- домен с красивым именем.
Но они пока никак не связаны.
Если прямо сейчас попытаться открыть домен в браузере — ничего не произойдёт.
Наша задача — сказать интернету:
«Когда кто-то обращается к этому домену, нужно идти на этот IP-адрес».
В разделе «Мои домены»:
- находим нужный домен;
- открываем выпадающее меню;
- выбираем «Редактировать DNS».
Далее переходим к редактированию DNS-записей.
Нас интересует запись типа A.
Она связывает:
домен → IP-адрес
В поле значения указываем IP вашего VPS-сервера, который пришёл на почту.
Пример логики (условно):
cinemahub.ru → 123.123.123.123
Сохраняем изменения.
DNS — не мгновенная система.
После сохранения записей изменения распространяются по сети:
- обычно 3–4 часа;
- иногда до 24 часов.
Это нормально.
Мы обязательно проверяем, что сделали всё правильно.
Открываем терминал (Windows / macOS / Linux) и выполняем команду:
ping имя_доменаНапример:
ping cinemahub.ruОбратите внимание:
- http / https не указываем;
- проверяется именно DNS-разрешение.
Если вы видите ответы с IP-адресом вашего сервера — значит:
домен успешно делегирован
домен указывает на ваш VPS