Как запустить Python Telegram бота на VPS?

LasleyChao

Команда форума

LasleyChao

  • 4 Апр 2019
  • 1,775
  • 13,685
Хелоу!

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


Пример бота:

Код:
#main.py
import telebot

bot = telebot.TeleBot("ТОКЕН")

@bot.message_handler(func=lambda message: message.text.lower() in ['привет', 'здравствуйте'])
def send_welcome(message):
bot.reply_to(message, "Здравствуйте!")

@bot.message_handler(func=lambda message: True)
def echo_all(message):
bot.reply_to(message, 'Я тебя не понимаю(')

bot.infinity_polling()

Виртуальный сервер

Для демонстрации я буду использовать виртуальный сервер от ТЫК notme стоимостью 210 рублей в месяц. Вы можете использовать другого хостинг провайдера, или выбрать другую конфигурацию, в зависимости от вашего проекта.


1670344324792.png


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

После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.


1670344366352.png

Для этого можно использовать программу PuTTY ТЫК notme или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:

Код:
ssh root@213.139.209.81
И введите пароль который вы указали при создании VPS. (пароль может не отображаться, не пугайтесь)


Подготовка сервера

После того как вы подключились к серверу, выполните команды которые обновят списки, и устаревшие пакеты до последней версии.


Код:
sudo apt update
sudo apt upgrade

Загрузка и запуск бота

Перейдите в каталог home и создайте папку для вашего проекта выполнив команды.


Код:
cd /home
mkdir ramziv_bot
cd ramziv_bot
Зайдите панель управления VPS и откройте Файловый менеджер.

1670344601041.png

Загрузите файлы вашего проекта на сервер, в моем случае- это только один файл main.py.

1670344656345.png
Установите зависимости вашего проекта, и запустите бота.

Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.
Код:
pip install pyTelegramBotAPI
python3 main.py
Теперь перейдите в Телеграм и протестируйте работу:

Как запустить Python Telegram бота на VPS

Работает.


Авто запуск и перезапуск телеграм бота
Создайте systemd службу для бота.
Код:
sudo nano /lib/systemd/system/ramziv_bot.service
С конфигурацией:

Код:
[Unit]
Description=Ramziv - Telegram Bot
After=syslog.target
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ramziv_bot/
ExecStart=/usr/bin/python3 /home/ramziv_bot/main.py
RestartSec=60
Restart=always

[Install]
WantedBy=multi-user.target

Нажмите CTRL+S и CTRL+X что бы сохранить и выйти.

Выполните эти две команды что бы запустить службу:
Код:
sudo systemctl enable ramziv_bot
sudo systemctl start ramziv_bot
Ваш бот запущен. Перейдите в Телеграм и убедитесь в этом.


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

Код:
sudo journalctl -u ramziv_bot.service

ИЗИ
 

Иван Савинич

Легенда

Иван Савинич

  • 13 Май 2020
  • 141
  • 87
Для тех кто вообще не шарит топ, но учитывайте что это только основа бота, без скрипта.
___
Вспомнил историю, я несколько лет назад когда ещё мелкий был не шарил за программирование и создал несколько ботов на manybot (с иллюзией выбора, потому что в manybot можно сделать только цепочки из команд) для каких то шопов с ключами к играм.
 

CaHuTaP

Легенда

CaHuTaP

  • 19 Мар 2020
  • 401
  • 177
очень поможет начинающим разбираться с созданием ботов, основа хорошая, еще и по полочкам все разложено :cool:
 
Помощь Пользователи
Написать за помощью можно 👉 СЮДА

Вы не присоединились ни к одной комнате.

    Вы не присоединились ни к одной комнате.
    Сверху