Виртуальный сервер
Заказываем 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