Где разместить Telegram-бота, чтобы он не падал

Бот написан, проверен и отвечает. Следующий вопрос, о котором часто забывают при заказе: где он будет работать круглосуточно. Telegram сам ничего не запускает, он только передаёт сообщения. Программа бота должна постоянно работать на каком-то сервере.

Ниже о том, какие есть варианты, чем они отличаются и что проверить, чтобы бот не замолкал в самый неподходящий момент.

Почему не ноутбук и не домашний компьютер

На этапе разработки бот часто запускают прямо на компьютере разработчика, и это нормально. Но для работы с клиентами такой вариант не годится: компьютер выключают, уходит в сон, пропадает интернет или свет. В этот момент бот перестаёт отвечать, а клиент видит, что его сообщение висит без ответа.

Бот должен жить на сервере, который работает постоянно и за которым следит хостинг.

Вебхук или опрос

Бот узнаёт о новых сообщениях одним из двух способов. При опросе программа сама регулярно спрашивает Telegram, нет ли чего нового. Это просто настроить, и не нужен свой домен, но программа должна работать непрерывно.

При вебхуке Telegram сам отправляет каждое новое сообщение на адрес вашего сервера. Для этого нужен домен и HTTPS, зато бот реагирует сразу и лучше подходит для облачных платформ, где программа запускается по запросу. Для большинства рабочих ботов выбирают вебхук, для простых внутренних инструментов хватает опроса.

Какой сервер подойдёт

  • Небольшой виртуальный сервер: полный контроль, можно разместить рядом базу данных и сайт
  • Облачная платформа, которая сама запускает приложение и перезапускает его при сбое
  • Тот же сервер, где работает сайт, если бот небольшой и связан с сайтом

Обычный хостинг для сайтов без постоянно работающих программ для бота часто не подходит. Перед покупкой стоит уточнить у разработчика, на чём написан бот и что ему нужно. Общие критерии выбора описаны в тексте как выбрать хостинг.

Автоперезапуск и наблюдение

Любая программа иногда падает: из-за ошибки, обновления сервера или нехватки памяти. Важно, чтобы бот поднимался сам, без участия человека. На сервере это делается через системный менеджер процессов или контейнер с правилом автоматического перезапуска.

Второе правило: о падении вы должны узнать раньше клиентов. Помогает простая проверка, которая регулярно пишет боту и ждёт ответа, а при тишине присылает уведомление. Подробнее в тексте про мониторинг сайта, те же принципы работают и для ботов.

Данные, ключи и доступы

Токен бота даёт полный контроль над ним, поэтому он хранится в настройках сервера, а не в коде и не в переписке. Если бот хранит заказы или записи клиентов, нужна база данных с резервными копиями, а не файл рядом с программой.

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

Разработка бота и его размещение на сервере входят в услугу Telegram-бот. Если бот уже есть, но работает нестабильно, напишите через контакты.