Хостинг для 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 в сети платформы.