DeployCode
Фреймворки

Python

Деплой приложения на Django, FastAPI или Flask.

Как Railpack определяет приложение

Проект распознаётся как Python, если в корне есть requirements.txt, pyproject.toml, Pipfile или один из файлов main.py, app.py, server.py.

Менеджер пакетов — по файлам проекта:

ФайлыМенеджер
requirements.txtpip
pyproject.toml + poetry.lockPoetry
pyproject.toml + uv.lockuv
pyproject.toml + pdm.lockPDM
PipfilePipenv

Команда запуска по фреймворкам

ФреймворкКоманда по умолчаниюЧто нужно в зависимостях
Djangopython manage.py migrate && gunicorn <app>:applicationgunicorn
FastAPIuvicorn main:app --host 0.0.0.0 --port ${PORT:-8000}uvicorn
Flaskgunicorn --bind 0.0.0.0:${PORT:-8000} main:appgunicorn

Если структура проекта другая, укажите команду запуска в настройках «Сборка и запуск».

Django при каждом запуске выполняет migrate. Учитывайте это, если у сервиса несколько реплик.

Порт

FastAPI и Flask по умолчанию слушают 8000, а порт домена по умолчанию — 3000. Добавьте переменную PORT=3000 (или поменяйте порт в домене на 8000).

Для Django переменная PORT обязательна: без неё gunicorn слушает только 127.0.0.1 и приложение недоступно снаружи.

Версия Python

Берётся из (по приоритету): переменной RAILPACK_PYTHON_VERSION, .python-version, .tool-versions, mise.toml, runtime.txt, Pipfile. По умолчанию — 3.13. Поддерживаются версии от 3.10.

Полезные переменные Railpack

ПеременнаяЧто делает
RAILPACK_PYTHON_VERSIONВерсия Python
RAILPACK_DJANGO_APP_NAMEWSGI-модуль Django, если не определился сам
RAILPACK_PYTHON_PLAYWRIGHT_INSTALLУстановить браузеры Playwright

Частые проблемы

На этой странице