Django – это высокоуровневый веб-фреймворк, разработанный на языке Python, который позволяет создавать мощные и масштабируемые веб-приложения с минимальными усилиями. Сочетая в себе простоту использования, элегантный синтаксис и множество встроенных инструментов, Django делает процесс разработки веб-приложений быстрым и приятным.
Описание шаблона
Данный шаблон позволяет быстро развернуть сервер Django 3.1.3, Gunicorn 20.0.4, Nginx 1.14.1, Postfix 3.3.1, Certbot 1.9.0, Postgresql 12.1.
В дополнение к установленному программному обеспечению, на образе выполнены следующие настройки:
Активирован firewall и разрешены порты SSH (22), HTTP (80), HTTPS (443).
Рекомендованная конфигурация для Django
CPU: 1
RAM: 2Gb
Начало работы
После создания VDS, вы можете перейти по ссылке, что бы открыть проект созданный по умолчанию в /var/www/djangoproject/djangoproject:
http://vps_ip_address/
Или создать новый проект, указать его расположение в настройках сервиса gunicorn:
/etc/systemd/system/django.service
И перезапустить сервер Django:
systemctl restart django
Создание базы и пользователя POSTGRESQL
Подключитесь по SSH и выполните скрипт, который создаст базу, пользователя и пароль PostgreSQL и пропишет его в конфигурации проекта созданного по умолчанию и затем выполнит миграции:
secure_psql
Создание суперпользователя Django
Что бы создать суперпользователя Django выполнив команду в консоли:
cd /var/www/djangoproject && python3 manage.py createsuperuser
Настройка HTTPS (Опционально)
Для настройки HTTPS у VDS должно быть действующее DNS имя, укажите в /etc/nginx/nginx.conf в разделе server, доменное имя сервера (например):
server_name django.mydomain.ru;
Переазапустите nginx:
service nginx restart
Запустите certbot:
sudo /usr/local/bin/certbot-auto --nginx
Введем свой e-mail, cогласимся с условиями сервиса (A), Подписка на рассылку (опционально) (N), выберем доменные имена для которых нужно издать сертификат (Enter для всех).
В случае если все прошло без ошибок, мы увидим сообщение об успешной выдаче сертификатов и настройке сервера:
Congratulations! You have successfully enabled ...
После этого подключения на 80 порт будут перенаправляться на 443 (https).
Добавим в /etc/crontab для автоматического обновления сертификатов:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"