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

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

Хостинг Telegram-ботов в РФ: Python (aiogram), Node.js (telegraf), Java (Spring Boot), Go. Работа 24/7, webhook/polling, SSL-сертификаты, оплата в рублях.

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

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

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

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

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

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

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

Для вашего проекта автоматически предоставляется выделенная сеть (tg-net) с нативной поддержкой IPv6, что избавляет от проблем с блокировками Telegram API. Работайте в любом режиме: long polling (работает сразу) или Webhook (платформа автоматически выдает HTTPS-сертификат для Telegram API).

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

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

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

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

Выберите репозиторий с ботом. Платформа сама найдет requirements.txt (Python), package.json (Node.js) или pom.xml/build.gradle (Java) и соберет проект.

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

Задайте BOT_TOKEN в панели управления. Если бот использует Webhook, обязательно слушайте порт из переменной WEB_PORT (или PORT). Также вы можете использовать переменную TG_OPTION для дополнительных параметров запуска.

# Webhook: приложение должно слушать WEB_PORT
import os
PORT = int(os.environ.get('WEB_PORT', os.environ.get('PORT', 8080)))

# Node.js (telegraf webhook)
bot.launch({
  webhook: {
    domain: 'https://ваш-домен.ru',
    port: process.env.WEB_PORT || 8080
  }
});

4. Деплой и мониторинг

Бот запустится автоматически. Для Webhook используйте выданный платформой HTTPS-адрес. В случае падения процесса встроенный мониторинг моментально его перезапустит.

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

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

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

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

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

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

Conflict: terminated by other getUpdates request

Один токен используется двумя процессами одновременно. Убедитесь, что старый деплой остановлен. Если переходите на Webhook — удалите webhook через API Telegram или отключите polling.

ConnectTimeout (host='api.telegram.org')

Обычно это блокировки Telegram API. Платформа решает это автоматически, маршрутизируя ботов через сеть tg-net с корректным IPv6-резолвингом.

Webhook не работает / Не приходит ответ

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

FAQ

Что такое WEB_PORT и TG_OPTION?

WEB_PORT — это переменная окружения, которая передается в контейнер и указывает, какой порт должен слушать бот при использовании вебхуков. TG_OPTION используется для передачи дополнительных параметров запуска фреймворка или конфигурации.

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

Файловая система эфемерна (сбрасывается при деплое), поэтому локальный SQLite не подойдет. В панели управления в один клик создаются базы PostgreSQL или Redis — используйте их для хранения состояний.

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

Да, контейнер работает 24/7. Если процесс бота падает из-за ошибки в коде, Docker автоматически перезапускает его.

Можно ли хостить Discord-ботов (JDA, discord4j)?

Да, Java-боты для Discord (использующие JDA, discord4j, javacord) или боты на Python/Node.js собираются так же легко и работают в режиме Long Polling в сети платформы.