Хостинг Flask-приложения без сервера и nginx

Сделали сайт или API на Flask, а деплоить некуда? Подключите репозиторий - Dada Cloud увидит flask в requirements.txt, соберёт и запустит приложение, выдаст HTTPS-домен. Упало - поднимется само. Бесплатный тариф, серверы в России.

Почему Flask деплоят в Dada Cloud

Автоопределение Flask

Платформа находит flask в requirements.txt или setup.py и собирает приложение без Dockerfile.

Порт из кода или стандартный

Порт вычитывается из app.run в коде, по умолчанию - 5000. Приложение должно слушать 0.0.0.0 и порт из переменной PORT.

HTTPS-домен сразу

Приложение получает адрес вида имя.dada-tuda.ru с сертификатом. Свой домен подключается за пару минут.

PostgreSQL рядом

Managed-база в один клик, DATABASE_URL прокидывается в приложение сам.

Упало - поднимется само

Процесс перезапускается автоматически после падения - следить руками не нужно.

Бесплатный тариф для старта

Первое приложение можно держать бесплатно, без привязки карты.

Как задеплоить Flask-приложение

Шесть шагов от репозитория до рабочего адреса с сертификатом.

01

Проверьте requirements.txt

В манифесте зависимостей должен быть пакет flask — по нему платформа опознаёт проект и берёт стандартный порт 5000. Писать Dockerfile не нужно.

02

Добавьте gunicorn для боевого запуска

Впишите gunicorn в зависимости и запускайте приложение командой gunicorn app:app --bind 0.0.0.0:$PORT. Встроенный сервер Flask оставьте для локальной разработки.

03

Создайте приложение в консоли

Укажите имя и подключите GitHub-репозиторий либо загрузите zip-архив с проектом. Сборка стартует сразу после создания.

04

Пропишите переменные окружения

SECRET_KEY, ключи внешних сервисов и режим работы задаются в разделе переменных окружения — в репозиторий их класть не нужно.

05

Подключите PostgreSQL

Managed-база создаётся в один клик, DATABASE_URL появляется в переменных окружения автоматически — остаётся прочитать её в конфиге приложения.

06

Откройте выданный адрес

Через 1-2 минуты приложение доступно по HTTPS-адресу вида имя.dada-tuda.ru. Свой домен подключается за пару минут, сертификат выпускается сам.

Сколько стоит хостинг Flask

Реальные тарифы платформы и честное сравнение с арендой своего VPS.

ТарифЦенаЧто входит
Free0 ₽/месОдно приложение с базой и доменом, без привязки карты. Ограничение — по объёму ресурсов, а не по сроку.
Startup990 ₽/мес5 приложений, 2 базы данных, бэкапы 7 дней — для проекта с реальными пользователями.
Business2 900 ₽/мес20 приложений, 10 баз данных, бэкапы 30 дней, приоритетная поддержка.
Свой VPSсравнимо по железуVPS дешевле в деньгах за железо. Но gunicorn под supervisor, nginx, сертификаты и перезапуск после падения — это ваше время.

Что важно знать заранее

Честно про ограничения, без общих слов.

Встроенный сервер Flask — не для прода

app.run поднимет приложение, но обслуживает запросы в один поток. Под реальной нагрузкой ставьте gunicorn — это одна строка в зависимостях и одна в команде запуска.

Слушать нужно 0.0.0.0 и PORT

Порт приходит через переменную окружения PORT. Приложение, прибитое к 127.0.0.1 или к фиксированному порту, соберётся, но снаружи будет недоступно.

Диск приложения очищается при сборке

Загруженные файлы и SQLite-базу на локальном диске новый деплой не сохранит. Данные — в PostgreSQL, файлы — в объектное хранилище.

Хостинг Flask - частые вопросы

Куда задеплоить Flask-приложение бесплатно?

В Dada Cloud: подключаете репозиторий, платформа сама собирает и запускает приложение на бесплатном тарифе, без привязки карты.

Нужен ли Dockerfile или gunicorn-конфиг?

Нет. Достаточно requirements.txt с flask - платформа соберёт и запустит приложение сама. Есть свой Dockerfile - будет использован он.

На каком порту запускать Flask?

Слушайте 0.0.0.0 и порт из переменной окружения PORT. Если порт задан в app.run в коде, платформа его вычитает, по умолчанию - 5000.

Как хранить данные?

Создайте managed PostgreSQL рядом - DATABASE_URL появится в переменных окружения приложения автоматически.

Что будет, если приложение упадёт?

Платформа перезапустит процесс автоматически. Логи видны в панели - можно понять, что случилось.

Нужен ли gunicorn или хватит встроенного сервера Flask?

Для боевой нагрузки лучше gunicorn: пропишите его в requirements.txt и запускайте командой gunicorn app:app --bind 0.0.0.0:$PORT. Встроенный сервер Flask запустится тоже, но он однопоточный и предназначен для разработки.

Как задать секреты и переменные окружения?

В настройках приложения есть раздел переменных окружения: SECRET_KEY, ключи внешних сервисов и прочее задаются там и попадают в процесс при старте. Хранить их в репозитории не нужно.

Можно деплоить без GitHub?

Да. Заархивируйте папку проекта в zip и загрузите её в консоли — платформа найдёт requirements.txt, соберёт и запустит приложение так же, как из репозитория.

Куда складывать загруженные пользователями файлы?

В объектное хранилище или в базу. Локальный диск приложения при новой сборке очищается, поэтому пользовательские файлы на нём не переживут следующий деплой.

Дайте вашему коду адрес

Создайте аккаунт и разверните первое приложение. План Free — 0 ₽.

Создать аккаунт