PaaS Инфраструктура в РФ 🇷🇺

Хостинг для Telegram ботов

Хостинг Telegram-ботов в РФ: aiogram, telegraf, grammY, pyTelegramBotAPI. Работа 24/7, деплой из Git, оплата в рублях, бесплатный тариф для старта.

Автодеплой из Git

Платформа сама скачает код с Репозитория, соберет проект и запустит его.

Готовая среда

Не нужно настраивать Nginx или Linux. Под капотом надежные серверы RelaxDev.

Свои домены и SSL

Привяжите свой домен в 1 клик, а платформа автоматически выпустит Let's Encrypt SSL.

Telegram-боту нужен процесс, работающий постоянно, — обычный виртуальный хостинг для этого не подходит, а держать ради бота отдельный VPS дорого и хлопотно. RelaxDev запускает бота как долгоживущий контейнер: он поднимается после деплоя, переживает перезапуски и автоматически стартует заново при сбое.

Поддерживаются оба режима работы: long polling (проще, ничего настраивать не нужно) и webhook (быстрее реагирует, требует HTTPS-адреса — платформа выдаёт его автоматически). Токен бота хранится в переменных окружения и не попадает в репозиторий.

Как задеплоить Telegram ботов?

1. Получите токен у BotFather

Создайте бота командой /newbot в BotFather и сохраните токен. В код его вписывать нельзя — он попадёт в git-историю, и бот придётся перевыпускать.

2. Подключите репозиторий

Выберите репозиторий с ботом и ветку. Платформа определит стек по requirements.txt или package.json и подберёт команду запуска.

3. Добавьте токен в переменные окружения

Задайте BOT_TOKEN в настройках проекта и читайте его из окружения. Там же хранятся ключи внешних API и строка подключения к базе.

# aiogram (Python)
import os
from aiogram import Bot, Dispatcher

bot = Bot(token=os.environ['BOT_TOKEN'])
dp = Dispatcher()

// telegraf (Node.js)
const bot = new Telegraf(process.env.BOT_TOKEN);
bot.launch();

4. Выберите polling или webhook

Для polling дополнительная настройка не нужна — бот сам опрашивает Telegram. Для webhook укажите Telegram адрес проекта: платформа уже отдаёт валидный HTTPS-сертификат, который требует Telegram API.

# webhook: адрес проекта уже под HTTPS
await bot.set_webhook(f"https://ваш-домен.ru/webhook")
# приложение слушает 0.0.0.0 и порт из переменной PORT

Сравнение платформ

ПлатформаСтатусОплата
HerokuНе работает с РФБесплатный тариф закрыт
Обычный VPSРаботаетНастройка и обслуживание вручную
RailwayДоступен частичноНужна зарубежная карта
RelaxDevСерверы в РФРубли, есть бесплатный тариф

Раньше типовым выбором для ботов был бесплатный тариф Heroku — сейчас он закрыт, а оплата российской картой невозможна. Альтернатива в виде VPS требует самостоятельной настройки systemd, автозапуска и мониторинга. Платформа закрывает это деплоем из репозитория.

Частые ошибки и решения

Бот отвечает дважды на каждое сообщение

Запущено два экземпляра — например, старый процесс на VPS и новый на платформе, оба в режиме polling. Telegram отдаёт апдейты обоим. Остановите лишний экземпляр.

Conflict: terminated by other getUpdates request

Та же причина: один токен используется двумя процессами одновременно. Убедитесь, что старый деплой остановлен, а если переходите на webhook — сначала удалите его или отключите polling.

Бот перестаёт отвечать через некоторое время

Процесс завершился из-за необработанного исключения в обработчике. Оберните обработчики в try/except и включите логирование — логи контейнера видны в панели проекта.

Webhook не устанавливается

Telegram принимает только HTTPS с валидным сертификатом и стандартным портом. Используйте адрес проекта, выданный платформой, и убедитесь, что приложение слушает порт из переменной PORT.

FAQ

Будет ли бот работать круглосуточно?

Да, контейнер работает постоянно и автоматически перезапускается при падении процесса или обновлении проекта.

Можно ли хостить бота бесплатно?

Для старта и небольших ботов доступен бесплатный тариф. При росте нагрузки проект переводится на платный, оплата в рублях.

Как хранить данные пользователей бота?

Через базу данных: файловая система контейнера обнуляется при пересборке, поэтому SQLite-файл внутри контейнера для продакшена не подходит.

Polling или webhook — что выбрать?

Polling проще и достаточен для большинства ботов. Webhook быстрее реагирует и экономнее при высокой нагрузке — платформа выдаёт нужный для него HTTPS-адрес автоматически.

Поддерживаются ли платежи и inline-режим?

Да, ограничений со стороны платформы нет — доступна вся функциональность Telegram Bot API, включая платежи, inline-режим и Mini Apps.