Установка FastAPI и Flask на сервер: коротко и с данными
Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 5 вопросов. Полный разбор с примерами: Установка FastAPI и Flask на сервер.
Коротко
Главная / Разработка / FastAPI и Flask Установка FastAPI на сервер сводится к трём шагам: поставить пакет fastapi[standard], запустить приложение командой fastapi run и поставить перед ним прокси с HTTPS или платформу деплоя, которая сделает это сама. Flask ставится почти так же, но запускается через gunicorn: встроенный сервер разработки в продакшен не годится. API на FastAPI запускают командой fastapi run под systemd или в контейнере, а Flask отдают gunicorn.
Конспект по разделам
Установка FastAPI на Ubuntu и первый запуск
Нужны Python и виртуальное окружение: пакет python3-venv на Ubuntu ставится отдельно. Затем одна команда ставит FastAPI вместе с командой fastapi и сервером uvicorn: Минимальное приложение в файле main.py: Команда fastapi dev main.py запускает режим разработки с автоперезапуском. На сервере используют fastapi run main.py --host 0.0.0.0 --port 8000: перезапуска при правке файлов нет.
Где запускать FastAPI: App Platform, VPS или Docker Compose
Для платформы приложение собирают из Dockerfile: стек Python идёт через Docker. Общее сравнение площадок для Python-проектов: хостинг с поддержкой Python. Размер сервера зависит от числа воркеров и от того, что приложение держит в памяти.
FastAPI в Docker: Dockerfile и healthcheck
Документация FastAPI просит писать CMD в форме списка, как выше: тогда сигнал остановки доходит до приложения и оно успевает завершить запросы. В slim-образе нет curl, поэтому проверку здоровья делают самим Python. Один процесс на контейнер документация считает правильным для оркестраторов вроде Kubernetes.
FastAPI на VPS: systemd, Nginx и флаг --proxy-headers
Служба для FastAPI в файле /etc/systemd/system/api.service: Приложение слушает порт 8000, а Nginx или Caddy принимает HTTPS и передаёт запросы дальше. Если в API есть WebSocket, в блок Nginx добавляют заголовки Upgrade и Connection, иначе соединение оборвётся. Таблицы и очереди держат в PostgreSQL и Redis.
Flask на сервере: gunicorn вместо flask run
Команда flask run запускает сервер разработки с отладчиком, который при ошибке даёт выполнить код в браузере, и в интернет его выпускать нельзя. На сервере Flask запускает gunicorn: gunicorn -w 2 -b 127.0.0.1:8000 wsgi:app, где wsgi.py импортирует объект приложения. За Nginx Flask тоже нужно сказать, что перед ним прокси, иначе адреса клиентов и схема https в запросах окажутся неверными: Службу systemd пишут по образцу выше с другой строкой ExecStart.
Задеплойте приложение из репозитория
Подключите репозиторий, выберите фреймворк или Docker, домен и SSL выдаются сразу.
- React, Vue, Next.js, Nuxt, Angular, Svelte
- Любой стек через Docker
- Откат к прошлой версии одной кнопкой
- Бесплатный SSL с автопродлением
Данные
| Вариант | Когда выбирать |
|---|---|
| App Platform | Один сервис, деплой из Git, SSL и домен без настройки. Тарифы от 1 ₽ в месяц на 14 октября 2026 |
| VPS и systemd | Рядом PostgreSQL, Redis и другие процессы, нужен свой Nginx |
| VPS и Docker Compose | API, база и очередь собираются одним файлом и одинаково запускаются везде |
Данные на 14 октября 2026. Цены приведены для ознакомления и могут отличаться от актуальных. Перед покупкой проверяйте их на сайте провайдера.
Вопросы и ответы
Как запустить FastAPI на сервере, чтобы он работал после перезагрузки?
Описать службу systemd с параметром Restart и включить её командой systemctl enable. В Docker то же делает политика restart: unless-stopped.
Нужен ли Nginx перед FastAPI?
Не обязателен, но HTTPS кто-то должен принимать: Nginx, Caddy или платформа деплоя. Вместе с прокси включают флаг --proxy-headers.
Чем fastapi run отличается от запуска uvicorn вручную?
Команда fastapi run запускает тот же сервер uvicorn в боевом режиме, без автоперезапуска. Для сложных настроек uvicorn можно вызывать напрямую.
Как поставить Flask на сервер, если flask run для этого не годится?
Установить gunicorn в окружение приложения и запустить его командой gunicorn -w 2 wsgi:app за Nginx, а запуск доверить systemd.
Сколько памяти нужно FastAPI на VPS?
Для старта с 1-2 воркерами хватит 1 ГБ. Если API держит в памяти модель, добавьте столько, сколько занимает модель, на каждый воркер.