NetrunНа главную

Боты

Как выложить Telegram-бота на Node.js (Telegraf)

· 5 мин чтения

Бот на Node.js собран: Telegraf отвечает на команды, npm start поднимает проект, локально всё работает. Дальше встаёт привычный вопрос — где его держать, чтобы он отвечал круглосуточно, а не только пока открыт ваш ноутбук. Обычный ответ — арендовать VPS, поставить Node.js на сервер, настроить процесс-менеджер вроде pm2 и автозапуск. Для небольшого бота это несоразмерно много.

Бота на Telegraf или node-telegram-bot-api можно выложить и без сервера. Разберём, как подготовить проект на Node.js и опубликовать его так, чтобы он работал сам, без вашего компьютера и без ручной настройки.

  1. Проверьте package.json и команду запуска#

    Убедитесь, что в package.json перечислены зависимости (Telegraf или node-telegram-bot-api и всё остальное) и задан скрипт запуска — обычно start. Папку node_modules в архив класть не нужно: платформа установит зависимости по package.json и package-lock.json сама.

  2. Вынесите токен бота в переменную окружения#

    Токен от BotFather не оставляйте в коде и не коммитьте в репозиторий. Читайте его из process.env, например process.env.BOT_TOKEN. При настройке проекта Netrun спросит это значение и подставит его как секрет снаружи кода.

  3. Оставьте режим long polling#

    Для простого бота проще запускать его в режиме long polling — bot.launch() в Telegraf делает именно это. Тогда не нужно поднимать веб-сервер, настраивать вебхук и открывать порт. Это самый беспроблемный режим для хостинга, и Telegraf использует его по умолчанию.

  4. Уберите жёстко прописанные пути и порты#

    Если бот попутно поднимает веб-часть, порт берите из переменной окружения, а не из жёсткого числа. Для чистого бота на long polling порт не нужен вовсе — главное не оставлять в коде путей и значений, завязанных на ваш компьютер.

  5. Загрузите проект в Netrun#

    Загрузите код ZIP-архивом или импортом из GitHub-репозитория — приватный тоже подойдёт. Netrun определит, что это Node.js, установит зависимости и запустит бота. Выбирать сервер, версию Node.js или процесс-менеджер вручную не нужно.

  6. Запустите и проверьте бота#

    После сборки бот стартует и начинает отвечать в Telegram. Логи видны в кабинете в реальном времени — если бот молчит, причина будет понятна. Компьютер для этого включать не нужно. На бесплатном тарифе бот работает три дня, а потом выключается: код, настройки и токен остаются на месте, ничего не удаляется, а за сутки до выключения приходит предупреждение. Чтобы бот работал без этого ограничения, нужен тариф Pro.

Боту на Node.js не нужен ни pm2 на арендованном VPS, ни постоянно включённый ноутбук. Загрузите код в Netrun, вынесите токен в секрет — и бот на Telegraf начнёт отвечать сам. Бесплатно бота можно запустить и проверить в деле, а чтобы он отвечал круглосуточно, понадобится тариф Pro.

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

Где выложить Telegram-бота на Node.js?

Бота на Node.js можно выложить в Netrun. Платформа определяет язык по package.json, устанавливает зависимости и запускает бота на своих серверах, а не на вашем компьютере. На бесплатном тарифе бот работает три дня и затем выключается, код и настройки при этом остаются на месте. Чтобы бот отвечал круглосуточно, нужен тариф Pro.

Подойдёт ли это для Telegraf и node-telegram-bot-api?

Да. Netrun запускает любой Node.js-проект независимо от библиотеки. Главное — указать зависимости и скрипт запуска в package.json, вынести токен в переменную окружения и оставить режим long polling.

Нужно ли настраивать pm2 и автозапуск?

Нет. Поддержанием процесса и перезапуском при сбое занимается платформа. Ставить pm2, настраивать systemd или автозапуск, как на VPS, не требуется.

Класть ли node_modules в архив?

Нет. Папку node_modules загружать не нужно — Netrun установит зависимости по package.json и package-lock.json при сборке. Это делает архив меньше и сборку чище.

Будет ли бот работать при выключенном компьютере?

Да. После публикации бот живёт на серверах Netrun, поэтому отвечает независимо от того, включён ли ваш ноутбук, и перезапускается сам, если упадёт.

Запустите свой проект

Загрузите код, ответьте на пару вопросов — и получите рабочую ссылку. Есть бесплатный тариф

Попробовать Netrun
Все статьи блога