Главная/Разработка/FastAPI и Flask

Установка FastAPI и Flask на сервер

Установка FastAPI на сервер сводится к трём шагам: поставить пакет fastapi[standard], запустить приложение командой fastapi run и поставить перед ним прокси с HTTPS или платформу деплоя, которая сделает это сама. Flask ставится почти так же, но запускается через gunicorn: встроенный сервер разработки в продакшен не годится.

4 мин чтенияДанные проверены 16 октября 2026

Ответ за 30 секунд

API на FastAPI запускают командой fastapi run под systemd или в контейнере, а Flask отдают gunicorn. За Nginx или Traefik добавьте флаг --proxy-headers: без него приложение не узнает, что клиент пришёл по HTTPS. Для деплоя без админства подойдёт платформа с Docker.

Dockerfile в репозитории: платформа соберёт образ, выдаст SSL и привяжет домен.

Где запускать FastAPI: App Platform, VPS или Docker Compose

01 · 1 мин

Установка FastAPI на Ubuntu и первый запуск#

Нужны Python и виртуальное окружение: пакет python3-venv на Ubuntu ставится отдельно. Затем одна команда ставит FastAPI вместе с командой fastapi и сервером uvicorn:

python3 -m venv .venv
source .venv/bin/activate
pip install "fastapi[standard]"

Минимальное приложение в файле main.py:

from fastapi import FastAPI

app = FastAPI(docs_url=None, redoc_url=None)

@app.get("/health")
def health():
    return {"status": "ok"}

Команда fastapi dev main.py запускает режим разработки с автоперезапуском. На сервере используют fastapi run main.py --host 0.0.0.0 --port 8000: перезапуска при правке файлов нет. Параметры docs_url=None и redoc_url=None прячут страницы документации Swagger; на закрытом API они не нужны, а на публичном их оставляют только под паролем.

Инструмент · 1 мин

Где запускать FastAPI: App Platform, VPS или Docker Compose#

ВариантКогда выбирать
App PlatformОдин сервис, деплой из Git, SSL и домен без настройки. Тарифы от 1 ₽ в месяц на 14 октября 2026
VPS и systemdРядом PostgreSQL, Redis и другие процессы, нужен свой Nginx
VPS и Docker ComposeAPI, база и очередь собираются одним файлом и одинаково запускаются везде

Для платформы приложение собирают из Dockerfile: стек Python идёт через Docker. Общее сравнение площадок для Python-проектов: хостинг с поддержкой Python. Размер сервера зависит от числа воркеров и от того, что приложение держит в памяти.

Какой сервер взять под FastAPI или Flask

Три ответа, и калькулятор подберёт готовую конфигурацию

Сколько воркеров запускаете
Где база данных
Что делает API

03 · 1 мин

FastAPI в Docker: Dockerfile и healthcheck#

FROM python:3.13-slim
WORKDIR /code
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY ./app ./app
HEALTHCHECK CMD python -c "import urllib.request as u; u.urlopen('http://localhost:8000/health')"
CMD ["fastapi", "run", "app/main.py", "--host", "0.0.0.0", "--port", "8000", "--proxy-headers"]

Документация FastAPI просит писать CMD в форме списка, как выше: тогда сигнал остановки доходит до приложения и оно успевает завершить запросы. В slim-образе нет curl, поэтому проверку здоровья делают самим Python.

Один процесс на контейнер документация считает правильным для оркестраторов вроде Kubernetes. Флаг --workers оставляют для случая «один сервер без кластера и без Compose».

04 · 1 мин

FastAPI на VPS: systemd, Nginx и флаг --proxy-headers#

Служба для FastAPI в файле /etc/systemd/system/api.service:

[Service]
User=api
WorkingDirectory=/opt/api
ExecStart=/opt/api/.venv/bin/fastapi run main.py --port 8000 --proxy-headers
Restart=on-failure

Приложение слушает порт 8000, а Nginx или Caddy принимает HTTPS и передаёт запросы дальше. Если в API есть WebSocket, в блок Nginx добавляют заголовки Upgrade и Connection, иначе соединение оборвётся.

Таблицы и очереди держат в PostgreSQL и Redis. Секреты и адрес базы передают через переменные окружения файла службы, а не через код.

05 · 1 мин

Flask на сервере: gunicorn вместо flask run#

Команда flask run запускает сервер разработки с отладчиком, который при ошибке даёт выполнить код в браузере, и в интернет его выпускать нельзя. На сервере Flask запускает gunicorn: gunicorn -w 2 -b 127.0.0.1:8000 wsgi:app, где wsgi.py импортирует объект приложения.

За Nginx Flask тоже нужно сказать, что перед ним прокси, иначе адреса клиентов и схема https в запросах окажутся неверными:

from werkzeug.middleware.proxy_fix import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1)

Службу systemd пишут по образцу выше с другой строкой ExecStart. Образец для Django и общий разбор WSGI: хостинг для Django.

06 · 1 мин

Вопросы об установке FastAPI и Flask#

Как запустить 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 держит в памяти модель, добавьте столько, сколько занимает модель, на каждый воркер.

Почему этому можно верить

Как мы проверяли

Цены с сайта провайдераСняты вручную, у каждой цены указана дата проверки.
Всё можно повторитьКоманды и расчёты описаны так, что их повторит любой читатель.
Независимый справочникНе связан с разработчиками приложений и провайдерами и пишет о минусах тоже.

Источники цифр на этой странице: App Platform Таймвеб Клауд, timeweb.cloud/services/apps, проверено 14 октября 2026; Документация FastAPI: FastAPI в контейнерах (Docker), fastapi.tiangolo.com/deployment/docker, проверено 15 октября 2026.

SBРедакция SelfBase · обновлено 16 октября 2026

Задеплойте приложение из репозитория

Подключите репозиторий, выберите фреймворк или Docker, домен и SSL выдаются сразу.

  • React, Vue, Next.js, Nuxt, Angular, Svelte
  • Любой стек через Docker
  • Откат к прошлой версии одной кнопкой
  • Бесплатный SSL с автопродлением
Где запускать