База знаний

Установка телеграм бота на VPS (на Python)

  • telegram, bot, Python
  • 0

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


Заказываем VPS сервер, для бота вполне достаточно и тарифа VPS mini и выбрать Ubuntu 20 как ОС сервера.
Получаем доступы на почту и подключаем к серверу по ssh

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


ssh root@айпи сервера


Вводим пароль пользователя root, обратите внимание что пароль при вводе не показывает и не показывает движение курсора, но он вводиться.
Фактически в слепую, это для обеспечения безопасности.

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

 

Первым делом обновляем пакеты командами:
apt-get update -y
apt-get upgrade -y

Дожидаемся установки и обновления пакетов

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

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

cd /home
mkdir ramziv_bot
cd ramziv_bot

Этими командами, мы переходим в каталог /home далее создаем каталог ramziv_bot и переходим в этот каталог.

Подключаем по sftp используя filezilla (бесплатный фтп клиент)
В поле сервер пишем


sftp://IP-сервера

пользователь root
пароль пользователя root из письма
Порт 22

Подключаемся и переходим в каталог /home/ramziv_bot

 

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

Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.
apt install python3-pip -y
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


Помог ли вам данный ответ?