Как поставить бота написанного на яп 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

Приветствую всех. Из этой статьи вы узнаете как запустить 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 рублей в месяц. Вы можете использовать другого хостинг провайдера, или выбрать другую конфигурацию, в зависимости от вашего проекта.

Подключение к виртуальной машине
После того как вы создали 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
Комментарии
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, думаю понятно.

Открываем 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 Метод

Использовать SFTP/FTP, я использую WinSCP .
Перейдите в корень сервера и в папку root :
В эту папку кидаем папку нашего бота (bot)
Библиотеки для PYTHON ‘a устанавливаются так — python3.7 -m pip install —user biblioteka
3. Запуск бота
Спойлер: Запуск бота
Вводим команду screen и жмём enter .
Потом переходим в директорию бота и пишем python3.7 bot.py

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