Прочее

Переезд проекта

Перенос бота, базы данных и настроек на новый VPS. Переезд выполняется с полным отключением сервисов на старом сервере.

backup.sh install_bot.sh DNS A-запись
📦
Обязательные файлы, если установлен WEBSITE

При переезде с личным кабинетом (WEBSITE) без этих трёх файлов восстановление не получится — проверьте, что они попали в бэкап:

  • /root/bot/vpn_bot.db — основная база бота
  • /root/bot/.env — секреты и переменные WEBSITE_*
  • /root/bot/devices/devices.db — устройства и HWID

S3: все три файла входят в автобэкап в S3-хранилище (если S3 включён в настройках бэкапа).
Telegram: devices.db в Telegram не отправляется — файл слишком большой для лимита бота; в TG уходят только vpn_bot.db и .env.

⚠️
Пока домен указывает на старый сервер, бот и админка работают. После смены A-записи трафик пойдёт на новый VPS — убедитесь, что установка там уже завершена и сервисы запущены.
0

Подготовка

  • 1Заранее подготовьте новый VPS, куда будете переезжать (Ubuntu 24.04, root по SSH). Требования — как в Первичной установке.
  • 2Если SUBPAGE установлен на том же сервере, что и бот — заранее скопируйте и сохраните настройки из /root/subpage/.env (или весь файл). Они понадобятся при установке SUBPAGE на новом сервере.
  • 3Если SUBPAGE на отдельном сервере — его можно не трогать; меняется только сервер с ботом (и при необходимости прокси личного кабинета).
1

Остановка сервисов на старом сервере

Отключите основные сервисы бота — и остановите, и снимите с автозапуска:

bash · Старый сервер
systemctl stop vpn-bot.service vpn-webadmin.service xuiweb.service

systemctl disable vpn-bot.service vpn-webadmin.service xuiweb.service
💡
После остановки бот не обрабатывает платежи и команды. Планируйте переезд в период минимальной нагрузки.
2

Бэкап и смена DNS

Когда сервисы остановлены, создайте архив проекта и переключите домен на новый IP.

Скрипт бэкапа

bash · Старый сервер
bash <(curl -sSL https://update.3xstore.ru/backup.sh)

Смена A-записи

  • 1В панели DNS измените A-запись домена бота на IP нового сервера.
  • 2Дождитесь обновления DNS (от нескольких минут до нескольких часов). Проверьте: ping ваш-домен.ru или онлайн-сервис проверки DNS.
  • 3Убедитесь, что запись действительно указывает на новый VPS, прежде чем запускать установку с SSL на новом сервере.
⚠️
Скрипт бэкапа и смену DNS можно делать параллельно, но сертификат Let's Encrypt на новом сервере выдадут только когда A-запись уже смотрит на новый IP.

Скачивание архива

В каталоге /root на старом сервере появится ZIP-архив с проектом. Скопируйте его на свой компьютер (SFTP, WinSCP, scp).

bash · Пример с вашего ПК
scp root@СТАРЫЙ-IP:/root/backup_*.zip ./

Распакуйте архив локально — внутри должна быть папка bot с базой, .env и файлами проекта.

3

Установка на новом сервере

Загрузка папки bot

Загрузите папку bot из архива на новый сервер в /root/bot — так же, как при первичной установке.

Запуск install_bot.sh

bash · Новый сервер
cd /root/bot
bash install_bot.sh

Ответы скрипта при переезде

  • 1Домен — укажите ваш домен (тот же, что был; A-запись уже на новый IP).
  • 2Секретный путь веб-админкипропустите (Enter), если путь уже задан в перенесённой базе vpn_bot.db.
  • 3Токен ботапропустите (Enter), токен уже в базе из бэкапа.
  • 4Дождитесь получения SSL-сертификатов и установки зависимостей.
  • 5SUBPAGE:
    — если SUBPAGE на отдельном сервере — пропустите установку SUBPAGE;
    — если SUBPAGE был под ботом — установите SUBPAGE и вставьте сохранённые параметры из .env.
После успешного завершения скрипта бот, веб-админка и xuiweb должны быть запущены. Проверьте вход в админку по старому секретному пути и работу бота в Telegram.
4

Опционально: личный кабинет (WEBSITE)

Если у вас был развёрнут личный кабинет на проксирующем сервере — после переезда бота обновите IP в nginx на прокси.

💡
Полная установка кабинета — в Личный кабинет. Ниже только шаги, специфичные для переезда.

Проверка .env (WEBSITE)

На сервере с ботом откройте /root/bot/.env и убедитесь, что из бэкапа перенеслись переменные личного кабинета (WEBSITE_*, почта, домен и т.д.).

bash · Сервер с ботом
nano /root/bot/.env

Если файла нет или блок WEBSITE пустой — заполните заново по Личный кабинет → Настройка .env.

На сервере с ботом — сервис website

Если website.service не был перенесён или не запущен — выполните с шага 4 «Виртуальное окружение и зависимости» и далее по инструкции кабинета (systemd, UFW).

На проксирующем сервере

Замените IP старого бота на IP нового бота:

bash · Проксирующий сервер
nano /etc/nginx/conf.d/website.conf
nginx — фрагмент
proxy_pass         http://IP-нового-бота:3012;
bash · Проверка и перезагрузка
nginx -t && systemctl reload nginx
Готово. Проверьте сайт кабинета в браузере и авторизацию через Telegram.

Чеклист после переезда

  • Веб-админка открывается по https://домен/секретный-путь/
  • Бот отвечает в Telegram, подписки и платежи на месте
  • SUBPAGE / ссылки подписки работают
  • Вебхуки платёжных систем указывают на тот же домен (URL не менялся — менять не нужно)
  • Личный кабинет (если есть) открывается через прокси
  • Старый сервер можно выключить после 24–48 ч стабильной работы на новом