Перейти к содержимому

Как поставить python бота на vds сервер

  • автор:

Как поставить бота написанного на яп python на VDS/VPS сервер?

После покупки вы должны найти: -IP-адрес сервера -Пользователь -Пароль Если вы покупали сервер на firstbyte.ru , вам нужно:

Перейти на «Виртуальные сервера» , нажать на имя вашего сервера.

нажимаем сюда
данные тут

Скачиваем и устанавливаем PuTTY — https://www.putty.org/
После запуска в поле «Host Name (or ip address)» указываем ранее полученный наш IP-адрес
Connection type — SSH
Close window on exit — Only on clean exit.

Нажимаем Open, и у нас откроется окно управления сервером.
В поле login as вводим ранее полученное имя пользователя ( по дефолту — root)
В поле password — вводим ранее полученный пароль от пользователя, символы показываться не будут, не пугайтесь.

Если авторизация успешная, у нас появится такое окно:

Теперь нам нужно скачать python, и библиотеки скрипта.

Копируем и вставляем все команды ниже:

sudo apt update sudo apt install rar sudo apt install screen sudo apt install python3.7 sudo apt-get install python3-pip sudo apt-get install python3-dev sudo apt-get install python3.7-dev

Библиотеки мы устанавливаем такой командой

python3.7 -m pip install название

Как установить сам скрипт на сервер?

Нам нужно архивировать папку с скриптом, и открываем командную строку(cmd)
и пишем:

scp ПутьДоНашегоАрхива ИмяПользователя@ТутВашIP:/root
scp C:\script.rar root@0.0.0.0:/root

И нас просят ввести пароль, вводим его.
Заходим в PuTTy вводим cd bot , вводим ls и видим наш архив.

Вводим команду для распаковки .rar архива

rar x архив.rar

Запуск скрипта: Чтобы скрипт работал всегда, без остановки, мы скачивали утилиту screen.
Вводим

screen

и жмем enter, переходим в директорию с нашим скриптом с помощью cd и прописываем:

python3.7 названииефайла.py

Скрипт запущен! чтобы свернуть окно, нажмите CTRL + A + D Если вам нужно установить несколько скриптов, то сворачиваем текущее активное screen окно клавишами CTRL + A + D, прописываем команду screen для открытия нового окна и запускаем свой скрипт

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

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

Приветствую всех. Из этой статьи вы узнаете как запустить 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()

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

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

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

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

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

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

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

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

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

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

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

Примечание: 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 #Вывод #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
Комментарии
Tima

14 ноября 2023

Спасибо, за интересную статью. Помог. Часть с развёртыванием бота понятная и чёткая, мне нравится.

Как поставить python бота на vds сервер

Данная статья рассматривает запуск Python-бота на VDS-сервере с Ubuntu 18.04. В статье опишем установку и настройку необходимых компонентов, а также создание службы systemd для непрерывной работы бота.

Первым шагом необходимо установить git для удобной работы с проектами:

apt install git

Далее настроим SSH-ключ по статье «Как настроить SSH-ключ для GitHub», чтобы иметь возможность подключаться к удаленному репозиторию.

В Ubuntu 18.04 по умолчанию стоит Python 3.6.9. Поскольку наш бот написан на версии 3.9, то выполним ее установку.

add-apt-repository ppa:deadsnakes/ppa

Далее обновим все пакеты:

apt update

Выполним установку Python 3.9 командой:

apt install python3.9

И проверим его версию:

python3.9 -V

Она должна быть 3.9.16, как показано на скриншоте:

Однако предыдущая версия 3.6.9 по-прежнему доступна, и при запуске команд с использованием Python 3 будет использоваться именно она, а нам нужна более новая версия. Чтобы изменить интерпретатор по умолчанию, необходимо сначала проверить, какие версии Python уже используются в системе, для указания корректных путей далее по инструкции, выполнив эту команду:

ls /usr/bin/python*

Результат выполненной команды представлен ниже:

Для использования новой версии 3.9.16 вместо 3.6.9 добавим альтернативы:

update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2

Проверим результат выполненных команд:

update-alternatives --list python3

Для настройки выбора версии выполним команду config:

update-alternatives --config python3

И в запросе укажем номер интерпретатора Python, который будет использоваться по умолчанию, как показано на скриншоте:

Теперь для команды Python3 будет всегда использоваться версия 3.9.16. Проверим ее:

python3 -V

Вывод работы команды представлен на скриншоте ниже:

Установим pip3 при помощи следующей команды:

apt install python3-pip

И дополнительно пакет «python3.9-distutils»:

apt install python3.9-distutils

Установим виртуальное окружение:

apt install virtualenv

Дополнительно установим venv lib для Python 3.9

apt install python3.9-dev python3.9-venv

В целях безопасности для запуска нашего бота создадим нового пользователя:

useradd -m PYbot

Зададим ему пароль:

passwd PYbot

Добавим нашего пользователя с именем «PYbot» в группу «sudo»:

usermod -aG sudo PYbot

Проверим, что пользователь «PYbot» принадлежит группе «sudo»:

groups PYbot

После создания нового пользователя необходимо перезайти на VDS-сервер под созданной учеткой.

Далее в корень папки PYbot склонируем свой репозиторий при помощи команды:

git clone git@github.com:Deimos715/python-bot.git

Перейдем в папку «python-bot»:

cd python-bot

Добавим в наш проект виртуальное окружение:

python3 -m venv venv

Выполним его активацию:

source venv/bin/activate

Если необходимо выполнить его деактивацию, команда будет следующей:

deactivate

Импортируем все зависимости нашего проекта из файла requirements.txt:

pip3 install -r requirements.txt

Наш бот почти установлен, запускаем его:

python3 bot.py

Хотя бот будет функционировать, он перестанет отвечать после завершения сеанса работы с VDS-сервером. Чтобы решить эту проблему, мы воспользуемся системой инициализации systemd, которая широко используется в дистрибутивах Linux. Если вам интересно узнать больше о systemd, вы можете изучить наши статьи «Как создавать файлы модулей systemd» и «Как работать с systemd».

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

nano /lib/systemd/system/bot.service

Со следующими настройками:

[Unit] Description=python-bot After=network.target [Service] Type=simple User=PYbot ExecStart=/PYbot/python-bot/venv/bin/python3 /PYbot/python-bot/bot.py ExecReload=/PYbot/python-bot/bot.py WorkingDirectory=/PYbot/python-bot/ KillMode=process Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

Описание важных строек службы:

— Description — описание службы.

— User — пользователь из-под которого запущена служба.

— ExecStart и ExecReload — это команды для запуска и перезапуска бота.

— WorkingDirectory — путь к папке в которой файл запуска bot.py.

Для запуска службы выполним 2 команды:

systemctl enable bot.service
systemctl start bot.service

После запуска наш бот будет функционировать без перерыва даже после закрытия терминала. Кроме того, после перезагрузки системы бот автоматически запустится через 5 секунд в соответствии с параметром RestartSec.

Для проверки статусов и логов можно выполнить следующие команды:

systemctl status bot.service
journalctl -u bot.service

Гайд Как поставить python бота на VDS/VPS (Linux Ubuntu 16.04)

(noad)
p.s Я не использую heroku, т.к. там лимит на активные часы. Вроде так.

1. Установка Python на VDS.
Нужно: Putty и мозги.

Спойлер: 1 Метод
Открываете Putty , логинимся на сервер.
Данные на firstVDS находятся тут:
1.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Далее вписываем команды и ждем окончания:

sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget unrar screen cd /tmp wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz tar -xf Python-3.7.2.tar.xz cd Python-3.7.2 ./configure --enable-optimizations make -j 1 sudo make altinstall

НО! Это очень долго, если Вы не хотите ждать, вам нужен 2 метод.
Спойлер: 2 Метод
Открываете Putty , логинимся под сервер.
Данные на firstVDS находятся тут:
1.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Далее вписываем команды и ждем окончания:

sudo apt update sudo apt install unrar screen sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.7

Этот способ я не проверял, может не работать, но я не уверен.

2. Установка бота.
Нужно: CMD , Putty , rar с нашим ботом .
Спойлер: 1 Метод

ВНИМАНИЕ!
Архивировать бота НУЖНО в таком формате
bot.rar -> bot -> bot.py
иначе у вас в папке root будут валяться файлы бота .
тип чтобы в архиве с ботом была папка с ботом с названием bot, думаю понятно.

Screenshot_61.png

Открываем CMD(командную строку) и вводим следующее:
scp ПутьДоНашегоАрхива ИмяПользователя@ТутВашIP:/root
Пример:
scp C:\bot.rar root@1.1.1.1:/root
Вводим пароль и вот.

Идем в putty.
Далее вводите unrar x bot.rar
Вводим cd bot и после ls вы должны увидеть нашего бота

Библиотеки для PYTHON ‘a устанавливаются так — python3.7 -m pip install —user biblioteka

Спойлер: 2 Метод

Screenshot_63.png

Использовать SFTP/FTP, я использую WinSCP .
Перейдите в корень сервера и в папку root :

В эту папку кидаем папку нашего бота (bot)

Библиотеки для PYTHON ‘a устанавливаются так — python3.7 -m pip install —user biblioteka

3. Запуск бота
Спойлер: Запуск бота

Вводим команду screen и жмём enter .
Потом переходим в директорию бота и пишем python3.7 bot.py

Screenshot_62.png

PROFIT! Вы запустили бота и теперь можете не волноваться о нем!
Если я что-то не дописал, или сделал не так, можете написать мне.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *