Найти в Дзене
Роман Тимошенко

Переносим бота Telegram на VPS-сервер! 70р и не надо поддерживать его работу, да и еще VPN можно настроить!

Оглавление

Нам нужен VPS сервер.

Вид сервера, root-доступ к которому его клиент получает посредством удалённого интернет соединения. В плане управления операционной системой по большей части соответствует физическому выделенному серверу.

Его мы арендуем по ссылке https://justhost.ru/?ref=201131

Как его арендовать и настроить VPN есть тут https://dzen.ru/a/ZsL54m7_TGmMfDnh

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

  1. Подключение к серверу
    Используйте SSH для подключения к серверу. Нажимаем win+r.

В водим cmd и нажимаем Ок.

-2

В командной строке вводим ssh root@"свой ip сервера который пришел в на почту (где написано доступ по SSH ip, не ipv6)"

2. Обновление системы
Перед началом работы обнови список пакетов и установи обновления:
sudo apt update

2. Установка Python и необходимых библиотек

1. Установка Python
Вводим команду

sudo apt install python3 python3-pip

-3

2. Установка необходимых библиотек
Установите python-telegram-bot и другие библиотеки, которые могут понадобиться:

pip3 install python-telegram-bot

-4

Если у вас ошибка Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1918. У меня просто ничего не устанавливалось, при попытке установить что то возникала эта ошибка. Мне помогло :

  1. Проверьте состояние процесса dpkg:
    Найдите процесс dpkg и проверьте его состояние:

    ps aux | grep dpkg

    Это позволит вам узнать, что делает процесс и сколько времени он уже работает.
  2. Подождите завершения процесса:
    Если процесс dpkg выполняет какую-то задачу (например, устанавливает или удаляет пакеты), лучше подождать, пока он завершится. Это может занять некоторое время, особенно если выполняется важное обновление или установка.
  3. Попробуйте удалить блокировки:
    Если процесс dpkg висит и не завершает работу, можно попробовать удалить файлы блокировок. Сначала убедитесь, что никакие процессы не используют apt или dpkg:

    sudo lsof /var/lib/dpkg/lock

    Если никакие процессы не используют этот файл, удалите блокировки:

    sudo rm /var/lib/dpkg/lock
    sudo rm /var/lib/dpkg/lock-frontend

    Затем восстановите состояние базы данных пакетов:

    sudo dpkg --configure -a

Долгий процесс, подождите его завершения!

-5

Перезагрузка сервера

sudo reboot

3. Загрузка и настройка скрипта бота

  1. Загрузка скрипта на сервер
    nano имя_фашего_Файла_на_Сервере_.py
  2. Настройка скрипта.
    Скопируйте ваш рабочий бот, и вставьте в файл.
-6
  • Сохраните изменения, нажав Ctrl+S
  • Выйдите из редактора, нажав Ctrl+X

4. Запуск бота

  1. Запуск скрипта
    Создаем скрипт:

    python3 /root/имя_фашего_Файла_на_Сервере_.py
  2. Работа в фоновом режиме
    Чтобы скрипт продолжал работать после выхода из SSH-сеанса, можно использовать screen или tmux. Установка screen:

    sudo apt install screen

    Создание новой сессии screen:

    screen -S bot_session

    Запуск скрипта внутри screen:

    python3 /root/имя_фашего_Файла_на_Сервере_.py

    Для выхода из сессии screen, нажми Ctrl+A затем D. Чтобы вернуться к сессии, используй команду:

    screen -r bot_session

    У меня выйте не получилось, просто переподключился к серверу.

5. Автозапуск бота

Чтобы бот запускался автоматически при перезагрузке сервера, можно использовать systemd.

  1. Создание файла службы
    Создай файл службы для systemd:

    sudo nano /etc/systemd/system/telegram-bot.service

    Добавьте следующее содержимое:

    [Unit]
    Description=Telegram Bot

    [Service]
    ExecStart=/usr/bin/python3 /root/имя_фашего_Файла_на_Сервере_.py
    WorkingDirectory=/root
    Restart=always

    [Install]
    WantedBy=multi-user.target


    Замените везде имя_фашего_Файла_на_Сервере_.py на соответствующие значения.
  2. Запуск и активация службы
    Перезагрузите systemd и запусти службу:

    sudo systemctl daemon-reload
    sudo systemctl start telegram-bot
    sudo systemctl enable telegram-bot


    Теперь бот будет автоматически запускаться при перезагрузке сервера и работать в фоновом режиме.

6. Проверка состояния

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

sudo systemctl status telegram-bot

Если что то не так увидите ошибку, проверьте что везде правильное имя написали и проверили что бот ваш работает.

-7

Если все хорошо увидете active.

-8

Эти шаги должны помочь вам успешно запустить и поддерживать работу вашего Telegram-бота на сервере с Ubuntu.

Спасибо что прочитали ! Все идеи можно воплотить! Ваш помощник по железкам и экономии Роман Тимошенко! До скорого!