Как задеплоить бота на Telegraf (Node.js) — хостинг на Botxona
Telegraf — один из самых популярных и давно используемых фреймворков для Telegram-ботов на Node.js. Для работы с Botxona никаких специальных настроек не нужно — Telegram-запросы автоматически проходят через прокси платформы, telegram.apiRoot не меняйте.
Шаги
1. Создайте Telegraf
const { Telegraf } = require("telegraf")
const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply("Привет! Я работаю."))
bot.launch()
process.once("SIGINT", () => bot.stop("SIGINT"))
process.once("SIGTERM", () => bot.stop("SIGTERM"))
2. Храните данные в DATA_DIR
Для хранения сессий или данных пользователей (например, telegraf-session-local):
const path = require("path")
const DATA_DIR = process.env.DATA_DIR || "./data"
const { LocalSession } = require("telegraf-session-local")
const session = new LocalSession({ database: path.join(DATA_DIR, "sessions.json") })
bot.use(session.middleware())
3. package.json
{
"scripts": { "start": "node index.js" },
"dependencies": { "telegraf": "4.16.3" }
}
4. .env.example и загрузка
Опишите свои настройки в .env.example, упакуйте папку в ZIP (подробнее) и загрузите в панель.
5. Проверка и тест
Изучите результат на этой странице, затем проверьте бота во время 15-минутного теста.
Long-polling вместо webhook
Не используйте режим Telegraf bot.launch({ webhook: {...} }) — Botxona сама работает через long-polling, вызов setWebhook игнорируется и не нужен. Достаточно обычного bot.launch() (без аргументов).
Запланированные задачи
Если вы добавите задачу по расписанию с node-cron или похожей библиотекой, Botxona определит это автоматически и переведёт бота в режим «всегда включён» (подробнее).
Частые ошибки
TelegramError: 404 Not Found— обычно устаревший токен или неверныйapiRoot, вручную изменённый в коде.- Сессии не сохраняются — возможно, файл сессий хранится не в
DATA_DIR, а в корне проекта. bot.launch()сразу завершается — проверьте, нет ли в конце кода строки, которая завершает процесс (например,process.exit()).
Быстрее с помощью ИИ
Отдайте ИИ готовое задание из Библиотеки промптов — и ваш существующий код на Telegraf будет адаптирован за несколько секунд.