• Добро пожаловать на сайт - wlux.net!

    FAQ по форуму

    1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа

    2. Сообщения учитываются в следующих разделах: Читать

    3.Что-бы скачать вложение нужно 2 сообщения.

    4.Личные переписки не работают на форуме

    5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта

    6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!

    5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

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

Оффлайн

wlux.net

Где волчьи уши, там волчьи зубы.
Команда форума
LV
7
 
20.06.2022
27 009
230
36
Награды
10
Пол
Муж.

Репутация:

  • Автор темы
  • Администратор
  • Модератор
  • Команда форума
  • #1
Приветствую всех. Из этой статьи вы узнаете как запустить Telegram бота на виртуальном сервере, и настроить службу для его авто запуска и перезапуска.

Телеграм бот​


Python:
#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()

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

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



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

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



Для этого можно использовать программу PuTTY или клиент 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 и откройте Файловый менеджер.



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



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

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

Код:
pip install pyTelegramBotAPI
python3 main.py

Теперь перейдите в Телеграм и протестируйте работу.



Работает.

Авто запуск и перезапуск телеграм бота​

Создайте 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

#Вывод
#Jun 13 12:35:31 objmnuqxoa python3[1069]:   File "/home/ramziv_bot/main.py", line 7, in send_welcome
#Jun 13 12:35:31 objmnuqxoa python3[1069]:     number = 1/0
#Jun 13 12:35:31 objmnuqxoa python3[1069]: ZeroDivisionError: division by zero
 
T Оффлайн

twinkey

Участник
LV
0
 
06.09.2023
7
0
0
25

Репутация:

Жаль что не нашел тему раньше, пришлось смотреть кучу непонятных видео
 
Оффлайн

iwanttodie

Участник
LV
3
 
13.09.2023
0
0
36
Награды
5
25
Пол
Муж.

Репутация:

  • Заблокирован
  • #3
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован.
Качественная работа от автора. Спасибо
 
S Оффлайн

Spear

Участник
LV
2
 
08.09.2024
21
0
12
Награды
2
28

Репутация:

как раз учусь делать ботов спасибо
 
Оффлайн

melekhin

Местный
Участник
LV
0
 
06.02.2025
80
0
13
Награды
2
33
Новосибирск
Пол
Муж.

Репутация:

Ооо, спасибо, обязательно попробую, тем более как раз есть в наличии сервер на котором можно будет попрактиковаться
 
N Оффлайн

nodamage

Участник
LV
2
 
01.02.2025
12
0
10
Награды
2
26

Репутация:

Спасибо за гайдик, отличная работа, буду тестить
 

Поиск по форуму

Похожие темы:

Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше....