Хостинг FastAPI без Docker и настройки сервера

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

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

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

Платформа находит fastapi в requirements.txt или pyproject.toml и собирает приложение сама. Dockerfile писать не нужно.

Порт подхватывается из кода

Если в проекте есть uvicorn.run с портом - платформа его вычитает. Нет - возьмёт стандартный 8000. Главное, чтобы приложение слушало 0.0.0.0 и порт из переменной PORT.

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

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

PostgreSQL рядом

База создаётся в один клик, строка подключения DATABASE_URL появляется в переменных окружения сама.

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

Если процесс упал с ошибкой, платформа перезапустит его автоматически.

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

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

Как задеплоить FastAPI за пять минут

От готового репозитория до рабочего HTTPS-адреса, без настройки сервера.

01

Проверьте манифест зависимостей

В requirements.txt или pyproject.toml должен быть пакет fastapi — по нему платформа опознаёт проект и выбирает стандартный порт 8000. Отдельный конфиг для сборки не нужен.

02

Слушайте 0.0.0.0 и переменную PORT

Приложение должно подниматься на 0.0.0.0 и порту из переменной окружения PORT. Если порт зашит в uvicorn.run, платформа вычитает его из кода; фиксированный localhost снаружи недоступен.

03

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

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

04

Добавьте PostgreSQL, если нужен

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

05

Дождитесь сборки и откройте адрес

Обычно 1-2 минуты. После деплоя API доступен по HTTPS-адресу вида имя.dada-tuda.ru, автодокументация FastAPI — по /docs на том же адресе.

06

Подключите свой домен и выберите тариф

Свой домен добавляется за пару минут, сертификат выпускается автоматически. Стартуйте на бесплатном тарифе, переходите на платный, когда API вырастет.

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

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

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

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

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

Порт берётся из переменной, а не из кода

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

Файлы на диске приложения не переживают редеплой

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

Долгие фоновые задачи — отдельным приложением

BackgroundTasks внутри запроса подходит для секундных операций. Для очередей и долгих задач заводите второе приложение в режиме фонового воркера.

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

Куда задеплоить FastAPI, если я не умею настраивать сервер?

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

Нужен ли Dockerfile?

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

На каком порту должно работать приложение?

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

Как подключить базу данных?

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

Есть бесплатный хостинг для FastAPI?

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

Что делать с автодокументацией /docs и /redoc?

Ничего дополнительно. FastAPI отдаёт /docs и /redoc сам, а платформа проксирует все пути приложения — Swagger UI открывается по выданному HTTPS-адресу сразу после деплоя. Если документацию нужно закрыть от посторонних, отключайте её в самом приложении параметром docs_url=None.

Как запускать миграции Alembic?

Так же, как привыкли: командой alembic upgrade head при старте процесса или вручную. Платформа не вмешивается в команду запуска приложения, поэтому цепочка вида alembic upgrade head && uvicorn app:app работает без правок.

Приложение деплоится из GitHub или можно без git?

Оба варианта. Подключаете GitHub-репозиторий — каждый пуш собирает новую версию. Либо загружаете zip-архив с проектом прямо в консоли, если с git разбираться не хочется.

Что с фоновыми задачами и воркерами?

Фоновый процесс (Celery, arq, свой цикл) создаётся как отдельное приложение в режиме «фоновый воркер» — публичный домен ему не выдаётся. API и воркер живут рядом в одном проекте и видят одну и ту же базу.

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

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

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