1. SSH к вашему серверу
ssh root@<server-ip>
2. Найдите учётные данные для входа
- Пользователь по умолчанию:
django - Пароль хранится в:
/root/.cloudzy-creds
(Необязательно) Изменить пароль по умолчанию: passwd django
3. Переключитесь на пользователя приложения
su - django
4. PostgreSQL (необязательно)
Если PostgreSQL был установлен, создайте БД и пользователя (пример):
sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD <password>;
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q
Затем обновите settings.py DATABASES с указанием хоста localhost, имени базы данных, пользователя и пароля. Выполните python manage.py migrate.
5. Разверните ваше приложение
Тестовое приложение Flask уже запущено и доступно по адресу: http://<server-ip
Чтобы развернуть собственное приложение:
- Перейдите в директорию вашего приложения (или склонируйте новый проект):
cd~/django_app - (Необязательно) Заменить приложение по умолчанию:
gitclone<your_repo_url> . - Активируйте виртуальное окружение:
sourcevenv/bin/activate - Установите необходимые пакеты:
pip install -r requirements.txt - Измените
settings.py: укажитеALLOWED_HOSTSна ваш домен/IP и убедитесь, чтоSTATIC_ROOTсуществует. - Примените миграции базы данных:
python manage.py migrate - Соберите статику в
STATIC_ROOT:python manage.py collectstatic --noinput - Перезапустите Gunicorn, чтобы применить изменения:
sudo systemctl restart gunicorn - Перезапуск Nginx:
sudo systemctl restart nginx
6. Доступ к приложению
Ваше приложение Django доступно по адресу: http://<server-ip
Nginx проксирует запросы к Gunicorn через Unix-сокет.
7. Изменить порт или домен?
Чтобы изменить домен, порт или добавить SSL:
- Откройте конфигурацию сайта Nginx:
sudo nano /etc/nginx/sites-available/gunicorn_django - Проверьте конфигурацию:
sudo nginx -t - Перезагрузите Nginx:
sudo systemctl restart nginx
8. Включить HTTPS (необязательно)
Используйте Certbot для включения HTTPS.
Установите certbot:
sudo apt install certbot python3-certbot-nginx -y
Получите сертификаты и обновите конфигурацию Nginx автоматически:
sudo certbot --nginx -d example.com
Test:
nginx -t && sudo systemctl reload nginx