Установка, настройка и запуск бота Python на виртуальном сервере (VPS)
Для того чтобы установить, настроить и запустить бота Python на виртуальном сервере (VPS), нужно сделать всего несколько шагов. Самое главное — быть внимательным.
Что мы имеем?
На начало установки, у нас на компьютере есть папка уже написанного на Python бота. В каком приложении мы его писали и запускали не важно. Важно не запутаться в папках и файлах.
Мы имеем папку my_bot
, а в ней:
— my_bot.py
— requirements.txt
Также, у нас уже есть оплаченный виртуальный сервер (VPS) у провайдера Beget, доступ к которому мы найдем в личном кабинете на вкладке Облако. Пароль, если что, ищем в письме от Beget support@beget.ru.
Что хотим на сервере?
Учитывая, что в дальнейшем возможна установка еще одного бота, необходимо правильно организовать их работу. Поэтому, устанавливать будем в отдельные папки.
В корневой директории создадим:
— папку our_bots
— — bot_1
— — bot_2
После того, как мы стали понимать что у нас есть и что мы хотим, начинаем установку, настройку и запуск нашего бота Python на виртуальный сервер.
Шаг 1: Подготовка виртуального сервера
1. Подключение к серверу
Используем SSH для подключения к своему виртуальному серверу. В Windows в поиске пишем — Терминал и запускаем его. В терминале пишем следующую команду:
ssh <user>@<server_ip>
Заменив <user>
на имя пользователя и <server_ip>
на IP-адрес сервера. Эти данные берем в личном кабинете Beget или в письме от него же. Должно получиться так:
ssh user@192.168.1.1
Далее пишем пароль и жмем Enter.
2. Обновление системы
После подключения к серверу обновляем список пакетов:
sudo apt update
Устанавливаем последние версии установленных пакетов:
sudo apt upgrade -y
Шаг 2: Установка Python и необходимых библиотек
1. Проверка версии Python
Так как сервер новый, на нем не установлен Python. Устанавливаем его:
sudo apt install python3 python3-pip -y
Если на сервере Python уже установлен, проверяем версию:
python3 --version
Шаг 3: Создание виртуального окружения
Для изоляции зависимостей проекта лучше использовать виртуальное окружение (virtual environment):
sudo apt install python3-venv -y
Создаем папку /our_bots/bot_1/
:
sudo mkdir -p /our_bots/bot_1/
Переходим в эту директорию:
cd /our_bots/bot_1/
Создаем в ней виртуальное окружение:
python3 -m venv venv
Активируем виртуальное окружение:
source venv/bin/activate
Шаг 4: Установка зависимостей
Так как у нас есть файл requirements.txt
с необходимыми библиотеками, открываем личный кабинет Beget, переходим на вкладку Облако, нажимаем Файловый менеджер, и загружаем в папку /our_bots/bot_1/
наш файл requirements.txt
Возвращаемся в Терминал и устанавливаем библиотеки:
pip install -r requirements.txt
Если файла requirements.txt
у вас нет, то устанавливайте библиотеки вручную. К примеру, так:
pip install aiogram requests
Шаг 5: Загрузка файлов бота
К сожалению, подключится через FTP к виртуальному серверу (VPS) Beget нельзя. Но можно попробовать через Терминал:
scp C:/Users/User/Desktop/my_bot/* <user>@<server_ip>:/our_bots/bot_1/
Если таким образом загрузить файлы не получится, то открываем личный кабинет Beget, переходим на вкладку Облако, нажимаем Файловый менеджер, и загружаем наши файлы вручную.
Шаг 6: Тестовый запуск бота
Перед настройкой автоматического запуска, необходимо проверить, что наш бот работает корректно. Выполняем в Терминале команду для запуска бота вручную:
python /our_bots/bot_1/my_bot.py
Убедившись, что бот запускается без ошибок и всё работает, можно переходить к следующему шагу.
Шаг 7: Настройка автоматического запуска
Теперь настроим автоматический запуск бота при старте системы с использованием systemd
.
1. Создаем новый файл сервиса для systemd
. Назовём его bot_1.service
:
sudo nano /etc/systemd/system/bot_1.service
2. В файл добавляем следующую конфигурацию:
[Unit]
Description=My Bot Service
After=network.target
[Service]
WorkingDirectory=/our_bots/bot_1/
ExecStart=/our_bots/bot_1/venv/bin/python /our_bots/bot_1/my_bot.py
Restart=always
User=<имя_пользователя>
[Install]
WantedBy=multi-user.target
3. Сохраняем файл и выходим из редактора (Ctrl + X
, затем Y
, и Enter
).
Шаг 8: Перезагрузка демонов и запуск сервиса
1. Перезагружаем демоны systemd
, чтобы система обнаружила новый файл сервиса:
sudo systemctl daemon-reload
2. Запускаем сервис:
sudo systemctl start bot_1
3. Включаем автозапуск при старте системы:
sudo systemctl enable bot_1
Шаг 9: Проверка статуса и логов
Чтобы убедиться, что бот работает, используем команду для проверки статуса сервиса:
sudo systemctl status bot_1
Если бот не запускается или возникают ошибки, можно смотрим логи:
journalctl -u bot_1 -f
Шаг 10: Проверка запуска после перезагрузки
Перезагружаем сервер и проверяем, что бот запустился автоматически:
sudo reboot
После перезагрузки сервера, можем снова проверить статус сервиса:
sudo systemctl status bot_1
Управление сервисом
Остановка бота:
sudo systemctl stop bot_1
Перезапуск бота:
sudo systemctl restart bot_1
Все! Теперь наш бот настроен и запущен на виртуальном сервере (VPS). Он будет автоматически перезапускаться при сбоях или перезагрузках системы.