1. SSH до вашого сервера
ssh root@<server-ip>
2. Знайдіть облікові дані для входу
- Default user:
django - Password stored in:
/root/.cloudzy-creds
(Необов'язково) Змініть пароль за замовчуванням: passwd django
3. Переключіться на користувача застосунку
su - django
4. PostgreSQL (Optional)
Якщо PostgreSQL встановлено, створіть БД та користувача (приклад):
sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD <password>;
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q
Then update settings.py DATABASES with host 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 - Adjust
settings.py: setALLOWED_HOSTSдо вашого домену або IP-адреси та переконайтесяSTATIC_ROOTexists. - Migrate database:
python manage.py migrate - Зібрати статику в
STATIC_ROOT:python manage.py collectstatic --noinput - Перезапустіть Gunicorn, щоб застосувати зміни:
sudo systemctl restart gunicorn - Restart Nginx:
sudo systemctl restart nginx
6. Отримайте доступ до вашого застосунку
Ваш застосунок Django доступний за адресою: http://<server-ip
Nginx проксіює запити до Gunicorn через Unix-сокет.
7. Змінити порт або домен?
Щоб змінити домен, порт або додати SSL:
- Редагування конфігурації сайту Nginx:
sudo nano /etc/nginx/sites-available/gunicorn_django - Test configuration:
sudo nginx -t - Reload Nginx:
sudo systemctl restart nginx
8. Увімкніть HTTPS (необов'язково)
Використайте Certbot для активації HTTPS.
Install certbot:
sudo apt install certbot python3-certbot-nginx -y
Отримання сертифікатів та автоматичне оновлення Nginx:
sudo certbot --nginx -d example.com
Test:
nginx -t && sudo systemctl reload nginx