Реклама ООО Таймвэб
Реклама ООО Таймвэб
Реклама ООО Таймвэб

Размещаем бота для Telegram: от выбора хостинга до запуска

14 комментариев
Размещаем бота для Telegram

Чат-боты для Telegram — простой, изящный и легковесный способ вывести общение с клиентами на новый уровень. Виртуальный собеседник может заниматься рассылкой по фильтрам, предлагать клиенту интересные для него товары и услуги, сообщать последние новости или забавно реагировать на определенные реплики человека — их функционал ограничивается лишь фантазией разработчика. Но чтобы чат-бот работал корректно и мог реализовать свой потенциал, после разработки нужно подобрать подходящий хостинг для него. Об этом я и расскажу в статье, а также о том, как настроить сервер и разместить чат-бота для Telegram.

Выбираем хостинг для телеграм-бота

Для начала быстро разберемся с юридической составляющей. В России власти заблокировали лишь серверы и сам сайт Телеграма (UPD: уже разблокировали, поражение в этой войне было неминуемо). Использование мессенджера фактически не запрещено. Но не любой российский сервер будет исправно работать с ботами для этого мессенджера. Так что перед арендой лучше уточнить у техподдержки, подойдет ли их хостинг для телеграм-бота.

У хостинга для чат-бота должна быть поддержка нескольких языков программирования. Например, хостинг для телеграм-бота на Python должен поддерживать этот язык. Аналогично, написанный на NodeJS бот должен быть развернут на сервере, в который можно подгрузить язык NodeJS.

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

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

Для развертывания бота для Telegram лучше всего подходит VDS/VPS. Он не требует наличия домена в обязательном порядке, и к нему можно будет обратиться по выделенному IP-адресу, что удобно при развертывании бота. К тому же такие серверы лучше поддерживают увеличение масштабов проекта, так что при увеличении потока посетителей вам не придется переходить на другой сервер — достаточно будет просто сменить тариф или его настройки.

Запустите свой VDS-сервер в Timeweb

От 169 рублей в месяц

Заказать сервер

Выбираем тариф

О тарифах хостингов для бота Telegram стоит поговорить отдельно. Есть целый класс бесплатных хостингов — сюда входит, например, Heroku. Они могут оказаться полезными при тестировании бота — расположите свой чат-бот на Heroku и проверьте работоспособность всех функций, прежде чем арендовать хостинг и выкладывать свое творение. Но учтите, что работоспособность на этом хостинге будет непостоянной — обычно чат-боты работают по 30 секунд, а затем отключаются на неопределенное время. Так что для полноценного развертывания лучше выбрать другой хостинг. 

Выбор тарифа обычно обуславливается потоком клиентов, но не сложностью бота. Для развертывания как простенького, так и нейросетевого бота вам не потребуется много дискового пространства. Нет нужды и в больших вычислительных мощностях — большинству ботов более чем достаточно 512 МБ оперативной памяти. Поэтому можно выбирать самые недорогие тарифы.

Ключевое требование к хостингу — стабильность подключения, поэтому от shared-хостингов для телеграм-бота лучше сразу отказаться. А вот VPS/VDS сможет обеспечить надежное подключение. Предпочтительная ОС для сервера — Ubuntu, поскольку большинство модулей для языков программирования пишутся именно под нее. Тарифы на такие виртуальные серверы начинаются от 169 рублей в месяц.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться

Настраиваем сервер для Telegram-бота

Рассмотрим настройку сервера на примере размещения бота, написанного на Python, который будет автоматически присылать ответы на различные команды.

После аренды VPS нам нужно подключиться к нему по протоколу SSH через специальный клиент (например, Termius), используя данные из личного кабинета на хостинге для телеграм-бота. Вам потребуются Hostname, Login, Password, Port. Вводим их в поля нового подключения. Вот как это будет выглядеть в Termius:

Termius SSH

Сохраняем подключение, возвращаемся на главный экран программы (здесь появляется наше новое подключение) и нажимаем на название сервера, которое мы вводили до этого:

Подключение к серверу

Готово, мы попали в консоль сервера:

Консоль сервера
Отсюда мы сможем управлять сервером, подгружать нужные нам модули и библиотеки. Этим и займемся. Чтобы бот работал, серверу потребуется модуль языка Python. Мы рассматриваем бота, написанного на третьей версии языка, поэтому нам нужно установить python3. Для этого введем в консоль сервера следующие команды:

sudo apt —reinstall install python3 -y

sudo apt —reinstall install python3-pip -y

Не забудем и про библиотеки. На «Питоне» ботов для Telegram обычно пишут с помощью библиотеки TelegramBotAPI. Для ее установки введем команду:

pip3 install pyTelegramBotAPI

Теперь нам нужно установить удобный менеджер процессов PM2 и язык программирования NodeJS с менеджером пакетов npm для его работы:

sudo apt install nodejs

sudo apt install npm

npm install pm2 -g

Размещаем чат-бота

С настройкой сервера покончено, можно отключаться от SSH. Теперь нам потребуется подключение к серверу по протоколу SFTP. Чтобы настроить его, заходим во вкладку SFTP в Termius, нажимаем на «select host» и выбираем имя сервера. После этого создаем папку с любым названием на латинице.

Как разместить бота

Затем копируем в нее файлы бота. Termius поддерживает drag'n'drop, так что можно просто перетащить содержимое вашей папки с ботом.

Запускаем бота

Бот готов к запуску! Для этого в консоли сервера поочередно вводим команды:

cd имя_папки

pm2 start main.py --interpreter=python3 (замените main на имя исполняемого файла бота)

Бот запущен и работает. Чтобы удостовериться в этом, мы можем ввести в консоли сервера команду менеджера процессов:

pm2 list

Команда выдаст в консоли список процессов, запущенных на сервере. Найдите строчку с названием бота. Если напротив нее в столбце «Status» значится «Online», бот успешно запущен.

Самый волнующий момент — проверить работу бота в самом мессенджере:

Проверка бота в Телеграм

Все работает! 

Hello World! Гайды и обзоры для девелоперов разных мастей.

Комментарии

Здравствуйте, а почему после команды sudo apt —reinstall install python3 -y сервер снова требует пароль?
Свернуть ответы
Акром Саидкамалов +3
08 окт в 2020
Здравствуйте, может из-за sudo?
Федот Федотов +2
11 фев в 2021
E: Unable to locate package pyTelegramBotAPI
Артур Муртазин +2
25 фев в 2021
А расскажите подробнее о том, как работают серверы типа Heroku. Слышал, что можно размещать ботов еще на Netlify и Hostman. С разработкой все понятно, а вот с размещением хотелось бы узнать о большем количестве сценариев.
Егор Листьев +3
10 марта в 2021
Было бы круто подобную же инструкцию, но чисто на Node.JS. Без Пайтона. Говорят, что там все проще и удобнее. Но внятных инструкций на русском языке не нашел что-то. Только документация в оригинале.
GOLD +4
02 мая в 2021
Здравствуйте, почему после команды(pm2 start main.py --interpreter=python3) пишет, что бот онлайн, но если писать pm2 list сразу выдает errored. В чем может быть проблема, если им никто не пользовался еще?
Свернуть ответы
Vankov Vyacheslav +2
19 окт в 2021
pm2 logs <script_name> покажет ошибки полученные в ходе выполнения скрипта
Дмитрий Мигунов +2
28 ноя в 2022
[TAILING] Tailing last 15 lines for [telegram_bot.py] process (change the value with --lines option)
Модератор
Пришел кот и стер лапкой этот комментарий
Подскажите, пожалуйста, а почему после pm2 logs все зависает? Как выйти из этого режима?
Модератор
Пришел кот и стер лапкой этот комментарий
Максим Юрченко +3
28 окт в 2022
такая проблема : бот установился и при вводе команды pm2 list пишет что бот онлайн но в телеграмее не работает, что делать ?
Модератор
Пришел кот и стер лапкой этот комментарий
дамир каст +1
29 апр в 2023
-bach: pm2: command not found - думаю пояснять не требуется
Свернуть ответы
Aleksandra 0
04 июля в 2023
поясните, пожалуйста))
Даниэль 0
08 сен в 2023
Спасибо за полезную информацию, как быть если все запущено, все норм работает, но сам бот в телеге вообще не реагирует?
Спасибо за статью, все по ней сделал, все работает.
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
С помощью соцсетей
У меня уже есть аккаунт Войти
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте