Для учебного проекта с таким бюджетом вариантов немного.
Хостинг:
-
PythonAnywhere (бесплатный тариф) - самый простой для новичков. Есть встроенная поддержка Django, веб-интерфейс для настройки. Минус - домен будет вида username.pythonanywhere.com.
-
Beget (от 200 руб/мес) - российский хостинг с SSH и Python. Нужно настраивать вручную.
-
VPS (Timeweb, REG.RU от 200 руб/мес) - полный контроль, но сложнее в настройке.
Базовый алгоритм деплоя на VPS (Ubuntu):
# 1. Обновить систему
sudo apt update && sudo apt upgrade -y
# 2. Установить Python и виртуальное окружение
sudo apt install python3-pip python3-venv nginx -y
# 3. Создать папку проекта
mkdir /var/www/myproject
cd /var/www/myproject
# 4. Создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate
# 5. Установить зависимости
pip install django gunicorn psycopg2-binary
# 6. Загрузить код проекта (через git или scp)
git clone https://github.com/username/myproject.git .
# 7. Применить миграции
python manage.py migrate
python manage.py collectstatic
# 8. Создать systemd сервис для Gunicorn
sudo nano /etc/systemd/system/gunicorn.service
Содержимое gunicorn.service:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/myproject
ExecStart=/var/www/myproject/venv/bin/gunicorn --workers 3 --bind unix:/var/www/myproject/gunicorn.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
Запуск:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
Настройка Nginx:
server {
listen 80;
server_name your-domain.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /var/www/myproject;
}
location / {
proxy_pass http://unix:/var/www/myproject/gunicorn.sock;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Важно:
- SQLite не подходит для продакшена. Переключись на PostgreSQL или MySQL.
- В
settings.py установи DEBUG = False и настрой ALLOWED_HOSTS.
- Для SSL сертификата используй Let's Encrypt (бесплатно).
Если хочешь попроще - используй PythonAnywhere. Там все настраивается через веб-интерфейс за 10 минут.
Огромное спасибо за подробный ответ! Попробую сначала PythonAnywhere, потом если все получится перееду на VPS.