Энциклопедия дистанционной
работы и образования
eng

Деплой телеграм-бота в картинках — за 2 минуты и бесплатно

Эта короткая инструкция позволит любому из вас запустить (сделать деплой) собственного телеграм-бота на сервере. Быстро, бесплатно и без специальныx навыков!

Не надо никаких мудреных настроек, не надо никаких длинных инструкций. Через 2 минуты ваш бот будет работать на сервере! Поехали!

Сервер для телеграм-бота

Мы будем выгружать телеграм бота на сервер хостинг-провайдера Бегет (один из крупнейших хостинг-провайдеров России). 

Перейдите на эту страницу, здесь вы найдете нужный вам сервер: https://beget.com/ru/vps 

Не волнуйтесь, сейчас вам ничего платить не нужно — первое время сервер для телеграм-бота будет работать без оплаты.

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

Выгрузка (деплой) телеграм-бота на сервер - выбираем тариф

Заполните регистрационные данные — ФИО, телефон, почту. Сейчас практически во всех странах требуют подтверждать номер телефона при регистрации:

Выгрузка (деплой) телеграм-бота на сервер - заполняем данные

Опять выбираете самый дешевый тариф, нажимаете “Создать виртуальный сервер”:

Выгрузка (деплой) телеграм-бота на сервер - Опять выбираем тариф

Выгрузка (деплой) телеграм-бота на сервер - создаем сервер

Поздравляем, ваш сервер запущен и готов к работе (скорее всего имя сервера у вас будет другое, но на то оно и имя:) ):

Выгрузка (деплой) телеграм-бота на сервер - сервер запущен

Переходим в панели управления в файловый менеджер:

Выгрузка (деплой) телеграм-бота на сервер - переходим в файловый менеджер

Перед вами папки сервера. Пугаться не нужно, это просто папки операционной системы Ubuntu. Это примерно то же самое, что папки на вашем компьютере на диске “С”. 

Создаем прямо здесь папку с названием вашего бота. Пусть это будет “giganika”. (когда будете создавать ботов профессионально, почитайте, в какой директории лучше их размещать — есть разные мнения, но у нас учебное размещение, мы будем создавать папку бота прямо в корне операционной системы — это безопасно, просто не совсем красиво):

Выгрузка (деплой) телеграм-бота на сервер - создаем папку для бота

Выгрузка (деплой) телеграм-бота на сервер - создаем директорию

Щелкаем мышью 2 раза по нашей папке, переходим в нее:

Выгрузка (деплой) телеграм-бота на сервер - открываем папку

Сюда загружаем файл нашего бота:

Выгрузка (деплой) телеграм-бота на сервер - загружаем файл

Если у вас не один файл, есть папки — заархивируйте их в zip, загрузите архив на сервер, затем разархивируйте его:

Выгрузка (деплой) телеграм-бота на сервер - если файлов много - загрузите их архивом

Мы будем размещать простейший эхо-бот, который присылает сообщение обратно. Если у вас пока нет своего, можете взять наш код ( создайте файл main.py и поместите код в него), если есть, размещайте свой:

[python] import telebot bot = telebot.TeleBot(`ВАШ_ТОКЕН_ОТ_BOTFATHER`) @bot.message_handler(content_types=["text"]) def repeat_all_messages(message): bot.send_message(message.chat.id, message.text) if __name__ == ‘__main__’: bot.infinity_polling()[/python]

После того, как файл бота загружен, нам надо приступать к его запуску. Наш бот работает на библиотеке pyTelegramBotAPI (в коде бота — telebot). Чтобы наш бот работал, нам надо установить эту библиотеку на сервер. Вы устанавливайте ту, на которой работает ваш бот.

Для работы с сервером нам надо поставить простейшую программу для работы по SSH. Это PuTTy, скачать ее можно на официальном сайте: https://www.putty.org/

Скачайте и установите программу, затем откройте ее. У вас появится такое окно:

Выгрузка (деплой) телеграм-бота на сервер - окно программы PuTTy

Теперь скопируйте ip адрес вашего сервера из панели управления, вот отсюда:

Выгрузка (деплой) телеграм-бота на сервер - скопируйте ip

Вставьте скопированный адрес в PuTTy и нажмите “Open”: 

Выгрузка (деплой) телеграм-бота на сервер - вставьте ip и нажмите Open

В открывшемся черном окошкев строке “login as” вводите «root» и нажмите “Enter”:

Выгрузка (деплой) телеграм-бота на сервер - введите root

В строке “password” — вставьте пароль от вашего сервера — он должен был прийти вам на почту (Если пароль не пришел — в панели управления нажмите “Настройки” — “Сбросить пароль” — “Сбросить и перезагрузить сервер” — новый пароль придет вам на почту).

Важно! В программе PuTTy вставка осуществляется либо одним кликом ПРАВОЙ кнопки мыши, либо сочетанием клавиш SHIFT+Insert.

Выгрузка (деплой) телеграм-бота на сервер - укажите ваш пароль

После того, как вы все сделаете правильно, вы должны увидеть приблизительно такое окно:

Выгрузка (деплой) телеграм-бота на сервер - окно загрузки терминала

В нашем боте используется библиотека “pyTelegramBotAPI”. Если у вас другая — ставьте вашу. Мы же устанавливаем нашу библиотеку “pyTelegramBotAPI” с помощью pip — пишем в терминале:

[code]pip install pyTelegramBotAPI[/code]

Выгрузка (деплой) телеграм-бота на сервер - устанавливаем библиотеку для телеграм-бота

После того, как библиотека будет установлена, нам останется перейти в терминале в нашу папку с ботом и запустить его. Пишем в терминале «cd /название_папки_с_ботом». У нас это cd /giganika:

Выгрузка (деплой) телеграм-бота на сервер - переходим в папку с ботом

Как видим, терминал перешел в нашу папку с ботом:

Выгрузка (деплой) телеграм-бота на сервер - терминал перешел в папку с ботом

Теперь здесь запускаем бота с помощью команды nohup и символа & в конце строки (эта команда позволяет боту работать в фоновом режиме):

[code]nohup python3 main.py &[/code]

main.py — это имя файла с кодом нашего бота. Если ваш файл называется иначе — замените это имя на ваше.

Готово! Наш бот работает!

Выгрузка (деплой) телеграм-бота на сервер - готово - бот работает!

Теперь, когда наш бот работает, давайте посмотрим еще пару моментов. Во-первых:

Как остановить вашего телеграм-бота

Для того, чтобы остановить бота, запущенного с помощью nohup , в нашем случае проще всего использовать команду killall:

[code]killall python3[/code]

Выгрузка (деплой) телеграм-бота на сервер - остановка бота

Обратите внимание, это остановит все процессы, запущенные python3. У вас других процессов нет, т.к. мы создали сервер только что и бот — это первое, что мы на нем запустили. Но в будущем имейте в виду.

Если телеграм-бот будет останавливаться

Иногда бывает такое, что бот останавливается. В 99,99% случаев проблема в том, что Телеграм периодически не отвечает на запросы бота (тут можете прочитать, что это за запросы — Как работает телеграм-бот) и бот вылетает с ошибкой. Для того, чтобы ваш бот не останавливался, вам нужно правильно обрабатывать ошибки в скрипте вашего бота. Это тема для отдельной статьи, она больше касается процесса разработки, а не деплоя. Возможно когда-нибудь мы ее напишем. Пока можете погуглить информацию на тему правильной обработки ошибок в телеграм-боте. Суть правильной обработки заключается в том, чтобы при возникновении большинства ошибок скрипт не останавливался, а пробовал повторить операцию еще раз, а информацию об ошибке записывал в логи. Сделать это несложно, но необходимо.

Дополнительные статьи:

Все способы заработка в Телеграм
В одной статье собрали все реальные способы заработка
Подробнее...
Сколько реально заработать на телеграм-канале?
Подробно разбираем, как и сколько можно заработать на телеграм-канале
Подробнее...
Заработок в Телеграме на отзывах
Вся информация о том, как и сколько можно заработать на отзывах
Подробнее...
Энциклопедия дистанционной работы и образования.
Абсолютно все, что нужно знать,
чтобы учиться и работать удаленно.