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

LasleyChao

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

LasleyChao

  • 4 Апр 2019
  • 1,913
  • 14,930
Хелоу!

Из этой статьи вы узнаете как запустить 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
  • 164
  • 155
Для тех кто вообще не шарит топ, но учитывайте что это только основа бота, без скрипта.
___
Вспомнил историю, я несколько лет назад когда ещё мелкий был не шарил за программирование и создал несколько ботов на manybot (с иллюзией выбора, потому что в manybot можно сделать только цепочки из команд) для каких то шопов с ключами к играм.
 

CaHuTaP

Легенда

CaHuTaP

  • 19 Мар 2020
  • 429
  • 274
очень поможет начинающим разбираться с созданием ботов, основа хорошая, еще и по полочкам все разложено :cool:
 

gijw3

Легенда

gijw3

  • 15 Янв 2024
  • 109
  • 3
блуждал по форуму и нашел это..
вовремя, очень вовремя
 

kost1k

Новорег

kost1k

  • 18 Авг 2024
  • 2
  • 0
очень давно искал такой гайд, спасибо огромное. сохраняю. :cool: теперь пойду искать как писать нормально бота 🧗‍♂️
 

whale

Легенда

whale

  • 20 Авг 2019
  • 266
  • 28
определенно пушка, но что делать если например у бота стремная админ панель и приходится вручную заходить в бд/конфиги чтобы что-то изменить? ток на винде юзать серв? или панель допиливать
 

Иван Савинич

Легенда

Иван Савинич

  • 13 Май 2020
  • 164
  • 155
определенно пушка, но что делать если например у бота стремная админ панель и приходится вручную заходить в бд/конфиги чтобы что-то изменить? ток на винде юзать серв? или панель допиливать
Можешь на гитхаб зайти, посмотреть репозиторий SQL-telegram-bot. А конфиги после привязки к БД только один раз создаешь, потом автоматом запросы выполняются
 
Помощь Пользователи
Обойти сообщения и открыть все хайды можно тут "Купить подписку" chill

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

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