Маркетплейс: Flask
Flask - это микрофреймворк для создания веб-приложений на языке python, использующий инструментарий Werkzeug WSGI и шаблонизатор Jinja. Flask является микрофреймворком, так как предоставляет только основные компоненты для веб-разработки (обработка запросов, маршрутизация и т.д.).
Приложение включает следующее ПО:
Название | Версия |
Nginx | 1.24.0 |
Mysql | 8.0.37 |
Flask | 3.0.3 |
Gunicorn | 22.0.0 |
Certbot | 2.11.0 |
Fail2ban | 1.1.0 |
Что делает это приложение:
-
Включает UFW брандмауэр и разрешает подключения на порты:
- SSH (22)
- HTTP (80)
- HTTPS (443)
- Настраивает Postfix для работы только на отправку сообщений, устанавливая параметр inet_interfaces = loopback-only
-
Устанавливает пароль MySQL пользователю root и запускает mysql_secure_installation.
Пароль записывается в файл /root/.my.cnf. Удалите этот файл, если требуется. -
Подготавливает проект Flask:
- Добавляет дополнительного системного пользователя.
- Создает виртуальное окружение с необходимыми модулями.
- Настраивает сервис gunicorn для работы с проектом.
- Настраивает nginx в качестве обратного прокси для gunicorn.
Дополнительная информация:
Реквизиты для подключения расположены на сервере, в файле: /root/.secrets.
Шаги после развертывания приложения:
Для подключения домена:
- Настройте DNS A-запись вашего домена на IP-адрес облачного сервера
- Добавьте Ваш домен в директиву «server_name» в конфигурацию nginx (/etc/nginx/sites-enabled/flask.conf)
- Перезапустите веб-сервер (systemctl restart nginx.service)
Включение TLS шифрования для Вашего сайта с использованием сертификатов от Let’s Encrypt:
Зайдите в консоль сервера по SSH под пользователем root и выполните команду:
certbot --nginx
Ответьте на вопросы и выберите домен, для которого будет выписан сертификат Let’s Encrypt.
Через несколько секунд сертификат будет выписан и nginx будет настроен для работы по https с использованием новых сертификатов.
Вы можете использовать уже подготовленный проект для работы со своим кодом, либо создать новый.
При создании нового проекта Вам будет необходимо изменить пути в конфигурации сервиса gunicorn.service и виртуального хоста nginx.
Документация на английском языке доступна по ссылке: https://flask.palletsprojects.com/en/3.0.x/
Желаем Вам приятной работы!