Боты
Как сделать, чтобы Telegram-бот работал круглосуточно
Самая частая проблема начинающего автора бота: бот отвечает ровно до тех пор, пока на компьютере открыт терминал с запущенным скриптом. Закрыли ноутбук, ушёл сон или пропал интернет — бот замолчал. Чтобы он работал круглосуточно, ему нужен компьютер, который не выключается. Обычно за этим идут к аренде VPS, установке окружения на сервер и настройке автозапуска, чтобы процесс поднимался сам после перезагрузки.
Но держать бота онлайн постоянно можно и без сервера. Разберём, что мешает боту работать круглосуточно и как это решается, когда инфраструктуру берёт на себя платформа.
Поймите, почему бот выключается#
Пока бот запущен на вашем компьютере, он живёт только вместе с ним: выключение, спящий режим, обрыв сети или закрытый терминал — и бот недоступен. Чтобы он отвечал всегда, скрипт должен работать на машине, которая не выключается и имеет постоянный интернет. Ваш ноутбук для этого не предназначен.
Откажитесь от идеи держать ноутбук включённым#
Оставлять компьютер включённым сутками — плохой вариант: он шумит, греется, перезагружается на обновления, а при любом сбое сети бот молчит, пока вы этого не заметите. Это решение «на пару дней», а не способ держать бота онлайн постоянно.
Перенесите бота туда, где он работает сам#
Боту нужна площадка, которая запускает его и сама поднимает обратно, если он упадёт. Это и делает Netrun: вы загружаете код, платформа запускает бота на своих серверах и перезапускает его при сбое. Ваш компьютер при этом может быть выключен — бот продолжает отвечать.
Вынесите токен в секрет#
Перед публикацией вынесите токен бота из кода в переменную окружения, чтобы он не попал в репозиторий. При настройке проекта Netrun спросит токен и подставит его как секрет — в коде и архиве он лежать не будет.
Загрузите бота и оставьте его работать#
Загрузите код архивом или импортом из GitHub. Netrun определит язык (Python, Node.js и другие), соберёт проект и запустит бота. После этого закрывать кабинет и выключать компьютер можно спокойно — бот остаётся онлайн.
Учтите ограничение бесплатного тарифа#
На бесплатном тарифе бот работает три дня, а потом выключается — за сутки до этого придёт предупреждение. Код, настройки и токен остаются на месте, ничего не удаляется. Трёх дней хватает, чтобы убедиться, что бот собрался, запустился и отвечает. Чтобы он оставался онлайн постоянно, нужен тариф Pro. Причина простая: сайт умеет засыпать в простое и просыпаться, когда кто-то открывает ссылку, поэтому место на сервере он занимает только когда отвечает. Бот же занят всё время: он сам ждёт сообщений от Telegram, публичной ссылки у него нет и разбудить его нечем. Его непрерывная работа и есть то, за что вы платите на Pro.
Чтобы Telegram-бот работал круглосуточно, не нужен ни включённый ноутбук, ни арендованный сервер с автозапуском — нужна площадка, которая держит бота онлайн сама. Загрузите код в Netrun, и бот будет отвечать всегда, даже когда ваш компьютер выключен.
Частые вопросы
Как сделать, чтобы бот работал, когда компьютер выключен?
Бота нужно перенести с вашего компьютера на площадку, которая держит его онлайн. В Netrun вы загружаете код, платформа запускает бота на своих серверах и перезапускает при сбое, поэтому он отвечает независимо от того, включён ли ваш ноутбук.
Нужен ли для круглосуточной работы платный тариф?
Да, для этого нужен тариф Pro: на нём бот работает без ограничения по времени. На бесплатном тарифе бот проработает три дня и выключится — этого достаточно, чтобы попробовать и убедиться, что всё запустилось и отвечает. Сайты на бесплатном тарифе живут сколько угодно: они засыпают в простое и просыпаются, когда кто-то открывает ссылку. Бота разбудить нечем — он всё время работает сам и ждёт сообщений.
Можно ли просто оставить ноутбук включённым?
Технически да, но это ненадёжно: ноутбук перезагружается на обновления, уходит в сон, теряет сеть — и бот молчит. Для постоянной работы лучше вынести бота на площадку, которая не выключается.
Что будет, если бот упадёт с ошибкой?
Netrun перезапускает упавший проект сам. Логи видны в кабинете в реальном времени, поэтому причину сбоя можно посмотреть и поправить код.
Нужно ли настраивать автозапуск и systemd?
Нет. Автозапуском и поддержанием процесса занимается платформа. Настраивать systemd, демонов или планировщики, как на обычном VPS, не нужно.