Очень вас понимаю, сам мучился неделю, когда только начал изучать.
Но на самом деле ничего сложно тут нет, вот вам пошаговая инструкция:
C на сайте
хостера, услугам которого я пользуюсь и у меня там крутится около 5 проектов все на Django
Но если что-то будет там не понятно, то вот кратное изложение:
1. Подключаемся к хостингу по SSH
2. Входим в контейнер Docker (пароль тот же что и для авторизации в ssh)
$ ssh localhost -p222
3. Создаем виртуальное окружение
$ virtualenv --no-site-packages --python=/usr/bin/python3.6 --prompt="(env)" .env
4. Активируем виртуальное окружение
$ source .env/bin/activate
5. Устанавливаем зависимости
pip install -r requirements.txt
Конечно у вас должен быть файл с зависимостями requirements.txt
6. Создаем файл passenger_wsgi.py рядом с manage.py со следующим содержимыым
# -*- coding: utf-8 -*-
import os, sys
sys.path.insert(0, '/home/u/username/username.beget.tech/project')
sys.path.insert(1, '/home/u/username/username.beget.tech/.env/lib/python3.6/site-packages')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Тут нужно пояснить, путь
/home/u/username/ формируется так
/home/ первая буква имени вашего пользователя на beget / имя вашего пользователя на beget/.
Домен username.beget.tech у вас будет доступен по умолчанию, его для тестов можно заюзать.
7. Добавить домен в ALLOWED_HOSTS
ALLOWED_HOSTS = ['username.beget.tech', ]
8. Создаем файл .htaccess следующего содержания
PassengerEnabled On
PassengerPython /home/u/username/username.beget.tech/.env/bin/python
9. Создаем папку tmp и в нем файл restart.txt
$ mkdir tmp
$ touch tmp/restart.txt
Собственно после этих действий сайт должен завестись. Но не буду большим оптимистом, будут вылазить ошибки, так всегда когда что-то делаешь в первый раз. Но служба тех поддержки
beget официально поддерживает сайты на python и вполне может помочь вам в развертывании сайта, а еще ответит на вопросы)
Но если будут вопросы, можете и у меня спросить))