Альтернатива Heroku и Railway: где запускать проекты из России

Heroku и Railway удобны ровно одним и тем же: вы отдаёте код — и получаете публичную ссылку, без аренды и настройки сервера. Но из России к ним всё больше вопросов: у Heroku давно нет бесплатного тарифа, оба сервиса списывают деньги с зарубежной карты, интерфейс и поддержка на английском, а доступ иногда зависит от того, откуда вы подключаетесь. Для пет-проекта или небольшого сервиса это лишние препятствия. Разбираем, чем заменить Heroku и Railway из России и что придётся сделать при переезде.

Что вообще сравниваем

Heroku — пионер PaaS, на котором выросло целое поколение проектов. Приложение описывается файлом Procfile, окружение собирается buildpacks, деплой — git push heroku main. Вокруг выстроена экосистема add-on'ов: база, кэш, почта подключаются готовыми сервисами.

Railway — современная платформа того же класса. Подключаете Git-репозиторий, сервис сам собирает и разворачивает проект, а управляемые базы живут рядом как отдельные сервисы.

Dockbox — российская PaaS-платформа. Код приходит из Git или архивом, собирается в Docker-контейнер, описание окружения — обычный Dockerfile, на выходе публичная HTTPS-ссылка. Оплата в рублях, интерфейс и поддержка на русском.

Принцип у всех трёх одинаковый, разница — в доступности из России и в том, кто платит за инфраструктуру. Heroku и Railway — зрелые хорошие платформы, и сравнивать их с Dockbox стоит не по качеству, а по условиям работы.

Главная разница для России: доступ и оплата

Все три сервиса — это PaaS: администрировать сервер не нужно нигде. Дальше начинаются расхождения.

Heroku и Railway. Платные тарифы оформляются зарубежной картой, бесплатного у Heroku нет, интерфейс, документация и поддержка на английском, а доступ иногда зависит от точки подключения. Технически это решаемо, но для учебного проекта или небольшого сервиса превращается в отдельную задачу.

Dockbox. Оплата российской картой, цены в рублях, интерфейс и поддержка на русском, доступ из России обычный. Первый месяц на Starter бесплатно — проверить платформу можно без риска.

Деплой: git push, Procfile и Dockerfile

Railway. Деплой из подключённого репозитория: платформа сама определяет стек и собирает проект.

Heroku. Привычный git push heroku main, а команда запуска лежит в Procfile рядом с кодом:

web: python main.py

Dockbox. Код подключается через Git или загружается архивом, стек определяется автоматически, но можно принести и свой Dockerfile:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "main.py"]

Перенос — это по сути перевод Procfile в Dockerfile. Строка web: python main.py становится последней строкой CMD, и проект собирается в контейнер уже без привязки к конкретной платформе.

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

Разные названия — одна механика. У Heroku это config vars (heroku config:set), у Railway — variables в панели, у Dockbox — секреты. Смысл общий: значения токенов и ключей хранятся вне кода. Имена видны, значения зашифрованы и не попадают ни в архив, ни в репозиторий.

Порт берётся из окружения. Heroku передаёт PORT, Railway делает так же. Если проект уже читал порт правильно, менять ничего не нужно:

import os
PORT = int(os.environ["PORT"])
app.run(host="0.0.0.0", port=PORT)

Что проверить перед переносом: порт из переменной PORT, а не вписанный в код, и прослушивание 0.0.0.0, а не localhost. Это ровно те две правки, на которых спотыкается большинство переездов.

Данные: база, файлы и постоянное хранилище

У Heroku и Railway база — управляемый сервис. Heroku Postgres и базы Railway администрирует провайдер: бэкапы, мониторинг, масштабирование. Это удобно и это сильная сторона обеих платформ — за базу платят отдельно.

В Dockbox управляемой базы как отдельного сервиса нет. База поднимается рядом с приложением вторым сервисом в docker-compose, а постоянство данных обеспечивает именованный том:

services:
  app:
    build: .
  db:
    image: postgres:16
    volumes:
      - db_data:/var/lib/postgresql/data
volumes:
  db_data:

Данные не переезжают сами. Сделайте дамп базы, перенесите результаты в постоянное хранилище — иначе файл SQLite, загруженные пользователями картинки и кэш потеряются при первой же пересборке.

Тарифы в рублях

Dockbox. Starter — 990 ₽/мес, первый месяц бесплатно: 1 vCPU, 2 GB RAM, 20 GB SSD, 1 проект. Pro — 2 490 ₽/мес: 2 vCPU, 4 GB RAM, до 5 проектов. Team — 4 990 ₽/мес. Контейнеры работают постоянно: тариф нужен под ресурсы и число проектов, а не чтобы держать процесс включённым. Отдельного счёта за сборки и трафик нет.

Heroku и Railway. Расчёт в долларах, оплата зарубежной картой, итог зависит от потребления и набора сервисов — актуальные условия и цены смотрите на сайте сервиса.

Тарифы и подробности — на dockbox.host.

Когда оставаться на Heroku или Railway

Вы работаете не из России или у вас есть зарубежная карта и аккаунт — вопрос доступности просто не возникает.

Нужна управляемая база. Если базу должен администрировать провайдер, с бэкапами и мониторингом, за это отвечает платформа.

Нужна экосистема add-on'ов. Готовые сервисы вокруг приложения — сильная сторона Heroku, и повторять её вручную смысла нет.

Проект уже работает. Если сервис живёт и приносит результат, переносить его без причины не стоит.

Когда хватит Dockbox

Оплата российской картой и русский интерфейс — обязательное условие.

Задача — один работающий адрес из вашего кода: бот, сайт, API, парсер, дашборд.

Не хочется изучать Docker, nginx и сертификаты — приходите с Git-репозиторием и получаете HTTPS-ссылку.

Нужна предсказуемость счёта. Один тариф в рублях вместо набора сервисов, контейнер работает постоянно, первый месяц бесплатно.

Частые вопросы

Чем заменить Heroku и Railway из России?

Dockbox решает ту же задачу — превращает код в публичную ссылку без настройки сервера, — но работает из России: оплата российской картой, цены в рублях, интерфейс и поддержка на русском. Первый месяц на Starter бесплатно, дальше 990 ₽/мес.

Нужна ли зарубежная карта?

Для Heroku и Railway — да, платные тарифы оформляются зарубежной картой. В Dockbox зарубежная карта не нужна: расчёт в рублях.

Можно ли перенести проект с Heroku или Railway?

Обычно да и почти без правок. Если приложение берёт порт из PORT, слушает 0.0.0.0 и хранит ключи в переменных окружения, достаточно перевести Procfile в минимальный Dockerfile, загрузить код через Git или архивом и задать те же значения секретами.

Что будет с базой данных при переезде?

Она не переезжает сама. Сделайте дамп базы, затем поднимите базу вторым сервисом в docker-compose с именованным томом либо подключите внешнюю по строке соединения, а пароль держите секретом.

Контейнер не останавливается, пока к проекту не обращаются?

Нет. Контейнеры Dockbox работают постоянно, без ограничения по часам и без остановки при простое: ссылка отвечает в момент открытия. Тариф нужен под ресурсы и число проектов.