Установка
Развёртывание бота на сервере
Пошаговое руководство: копирование файлов на VPS, получение SSL-сертификата и запуск всех сервисов через единый скрипт.
Ubuntu 24.04
Python 3.12
nginx
systemd
certbot
0
Требования
ОС
Ubuntu 24.04
Python 3.12 включён по умолчанию
Доступ
Root по SSH
порт 22 или кастомный
RAM / CPU
от 1 GB RAM
1 vCPU достаточно
Домен
A-запись > IP сервера
нужен для SSL (Let's Encrypt)
1
Подключитесь к серверу по SSH
- 1Скачайте и установите PuTTY:
putty.org - 2В поле Host Name введите IP сервера, порт
22, тип SSH - 3Нажмите Open, введите логин
rootи пароль
2
Загрузите папку bot на сервер
Папку нужно разместить точно по пути /root/bot. Скрипт установки проверяет текущую директорию и завершится с ошибкой, если запустить из другого места.
Через WinSCP / FileZilla (графический интерфейс)
- 1Откройте WinSCP или FileZilla, подключитесь (протокол SFTP, порт
22) - 2В правой панели (сервер) откройте папку
/root/ - 3Перетащите папку
botс вашего ПК на сервер - 4Дождитесь завершения копирования
После загрузки проверьте структуру:
/root/bot/install_bot.sh, /root/bot/service/, /root/bot/web_admin/ и т.д.3
Запустите скрипт установки
bash
cd /root/bot bash install_bot.sh
Скрипт требует root-прав и запуска строго из
/root/bot/. Не используйте sudo bash из другой директории.4
Что скрипт спросит в процессе
Скрипт автоматически устанавливает зависимости и задаёт несколько вопросов:
Секретный путь веб-админки
Рекомендуется задать
Веб-админка будет доступна по адресу
По умолчанию предлагается
https://домен/путь/.По умолчанию предлагается
admin123 — смените на уникальный, это защита от перебора.
Сгенерировать путь:
—
Домен для SSL-сертификата
Обязательно
Введите домен, A-запись которого уже указывает на IP сервера.
Скрипт автоматически получит сертификат через Let's Encrypt и настроит nginx.
Пример:
Скрипт автоматически получит сертификат через Let's Encrypt и настроит nginx.
Пример:
bot.example.com
Если A-запись ещё не указывает на сервер — сначала настройте DNS, подождите (до 24ч), затем запускайте установку.
Токен Telegram-бота
Рекомендуется задать
Токен бота из @BotFather в Telegram.
Если пропустить (Enter) — сервис запустится, но бот работать не будет. Токен можно задать позже в веб-админке.
Формат:
Если пропустить (Enter) — сервис запустится, но бот работать не будет. Токен можно задать позже в веб-админке.
Формат:
1234567890:ABCDEFabcdef...
Установка SUBPAGE (страницы подписки)
На выбор
Вариант 1 — установить SUBPAGE на этот же сервер. Скрипт скопирует папку
Вариант 2 — SUBPAGE находится на внешнем сервере. Скрипт спросит его домен. Смотрите раздел SUBPAGE сервер.
/root/bot/subpage в /root/subpage и запустит его установку.Вариант 2 — SUBPAGE находится на внешнем сервере. Скрипт спросит его домен. Смотрите раздел SUBPAGE сервер.
5
Что скрипт делает автоматически
- 1Устанавливает Python 3, pip, sqlite3, nginx, certbot
- 2Получает SSL-сертификат через Let's Encrypt и копирует в
/root/cert/ - 3Генерирует конфиг nginx
/etc/nginx/conf.d/xuiweb.confс вашим доменом и секретным путём - 4Создаёт виртуальные окружения Python (
venv) и устанавливает зависимости для бота, веб-админки, xuiweb - 5Записывает домен и секретный путь в базу данных
/root/bot/vpn_bot.db - 6Копирует
.service-файлы в systemd и запускает сервисы:vpn-bot,vpn-webadmin,xuiweb - 7Добавляет все сервисы в автозапуск при перезагрузке сервера
6
Проверка после установки
Статус сервисов
bash
systemctl status vpn-bot vpn-webadmin xuiweb
Логи веб-админки в реальном времени
bash
journalctl -u vpn-webadmin -f
Логи бота в реальном времени
bash
journalctl -u vpn-bot -f
✓
Результат установки
Установка завершена
Веб-админка
https://ВАШ_ДОМЕН/СЕКРЕТНЫЙ_ПУТЬ/
SUBPAGE
https://ДОМЕН_SUBPAGE/sub/<uuid>
Первый шаг
Откройте веб-админку и заполните токен бота
!
Частые проблемы
certbot не получает сертификат
A-запись домена не указывает на IP сервера, или порт 80 занят другим процессом. Скрипт останавливает nginx перед certbot — убедитесь, что порт 80 свободен.
Скрипт завершается с ошибкой «не в /root/bot»
Убедитесь, что папка скопирована именно в /root/bot, а не в /root/bot/bot. Проверьте: ls /root/bot/install_bot.sh
Сервис запущен, но бот не отвечает
Скорее всего, не введён токен бота. Откройте веб-админку > Настройки > Основные > укажите токен и сохраните. Затем перезапустите: systemctl restart vpn-bot
pip install зависает или падает
bash
# Проверьте доступность PyPI curl -I https://pypi.org # Попробуйте запустить установку повторно bash install_bot.sh