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. Доступ к вашему приложению
Your Django app is available at: 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
Тест:
nginx -t && sudo systemctl reload nginx