Установка и настрока Django проекта на хостинге Beget

2022-01-30

Мой сайт работает на хостинге Beget и написан с ипользованием Python и фреймворка Django. Бегет хорошо подходит для размещения небольших проектов как этот. В этой статье раскажу как хостить Django-проект на Бегете.

Для начала создадим сайт в панели администратора

  1. Создадим домен и прекрепим для него новую папку с каким-нибудь именем
  2. В разделе CMS, главного меню хостинга, выберем Django и установим каркас приложения

После установки фреймворка в конреновой директории можно найти файл README.txt следующего содержания

Django установленный системой автоматической установки cms LTD BEGET
Действия описанные ниже необходимо выполнять в docker-окружении выполнив команду ниже ssh localhost -p222
для установки дополнительных модулей используйте pip
сам Django располагается в папке
/home/u/username/site-directory/public_html/venv/ для начала надо переключиться на текущий virtualenv
заходим в папку с проектом
cd /home/u/username/site-directory/public_html
source venv/bin/activate

проверяем правильно ли определился путь до pip:
which pip
/home/u/username/site-directory/public_html/venv/bin/pip

теперь мы можем пользоваться pip'ом для установки модулей не указывая полного пути до исполняемого файла:
pip install
где имя модуля который мы хотим установить
Для перезапуска passenger в папке проекта достаточно выполнить команду touch на пустом файле restart.txt
pwd
/home/u/username/site-directory/public_html/HelloDjango/HelloDjango/tmp
touch restart.txt

Создание репозитория

Создайте репозиторий на любом из сервесов: Github, Bitbucket или Gitlab. Не рекомендуется хранить данные для подключения к базе данных в репозитории. Но если вы решили так сделать, не забудьте создать приватный репозиторий.
В личного кабинета в сайдбаре нужно включить SSH-доступ.

Подключимся к хостингу по ssh:

ssh login@server.beget.com

Пароль для доступа такой же как и от личного кабинета

Зайдем в docker-контейнер:

ssh localhost -p 222

Пароль для доступа такой же как и от личного кабинета

Инициализируем репозиторий в директории /public_html:

git init

git add -A

git commit -m "Initial commit"

Добавим ссылку на внешний репозиторий:

git add remotename url

Проверим, что репозиторий добавлен:

git remote -v


origin https://github.com/username/repository (fetch)

origin https://github.com/username/repository (push)

Привяжем ветку master к внешней ветке и отправим файлы в репозиторий:

git branch --set-upstream-to=origin/master


git push -f

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

git pull

Дополнительные действия

Для раздачи статики нужно сделать относительные ссылки:

В корневой директории

ln -s public_html public

На директорию static в public_html

rm -rf static
ln -s HelloDjango/static static