DJANGO

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"