Переезд проекта
Перенос бота, базы данных и настроек на новый VPS. Переезд выполняется с полным отключением сервисов на старом сервере.
При переезде с личным кабинетом (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.
Подготовка
- 1Заранее подготовьте новый VPS, куда будете переезжать (Ubuntu 24.04, root по SSH). Требования — как в Первичной установке.
- 2Если SUBPAGE установлен на том же сервере, что и бот — заранее скопируйте и сохраните настройки из
/root/subpage/.env(или весь файл). Они понадобятся при установке SUBPAGE на новом сервере. - 3Если SUBPAGE на отдельном сервере — его можно не трогать; меняется только сервер с ботом (и при необходимости прокси личного кабинета).
Остановка сервисов на старом сервере
Отключите основные сервисы бота — и остановите, и снимите с автозапуска:
systemctl stop vpn-bot.service vpn-webadmin.service xuiweb.service systemctl disable vpn-bot.service vpn-webadmin.service xuiweb.service
Бэкап и смена DNS
Когда сервисы остановлены, создайте архив проекта и переключите домен на новый IP.
Скрипт бэкапа
bash <(curl -sSL https://update.3xstore.ru/backup.sh)
Смена A-записи
- 1В панели DNS измените A-запись домена бота на IP нового сервера.
- 2Дождитесь обновления DNS (от нескольких минут до нескольких часов). Проверьте:
ping ваш-домен.ruили онлайн-сервис проверки DNS. - 3Убедитесь, что запись действительно указывает на новый VPS, прежде чем запускать установку с SSL на новом сервере.
Скачивание архива
В каталоге /root на старом сервере появится ZIP-архив с проектом. Скопируйте его на свой компьютер (SFTP, WinSCP, scp).
scp root@СТАРЫЙ-IP:/root/backup_*.zip ./
Распакуйте архив локально — внутри должна быть папка bot с базой, .env и файлами проекта.
Установка на новом сервере
Загрузка папки bot
Загрузите папку bot из архива на новый сервер в /root/bot — так же, как при первичной установке.
Запуск install_bot.sh
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.
Опционально: личный кабинет (WEBSITE)
Если у вас был развёрнут личный кабинет на проксирующем сервере — после переезда бота обновите IP в nginx на прокси.
Проверка .env (WEBSITE)
На сервере с ботом откройте /root/bot/.env и убедитесь, что из бэкапа перенеслись переменные личного кабинета (WEBSITE_*, почта, домен и т.д.).
nano /root/bot/.env
Если файла нет или блок WEBSITE пустой — заполните заново по Личный кабинет → Настройка .env.
На сервере с ботом — сервис website
Если website.service не был перенесён или не запущен — выполните с шага 4 «Виртуальное окружение и зависимости» и далее по инструкции кабинета (systemd, UFW).
На проксирующем сервере
Замените IP старого бота на IP нового бота:
nano /etc/nginx/conf.d/website.conf
proxy_pass http://IP-нового-бота:3012;
nginx -t && systemctl reload nginx
Чеклист после переезда
- Веб-админка открывается по
https://домен/секретный-путь/ - Бот отвечает в Telegram, подписки и платежи на месте
- SUBPAGE / ссылки подписки работают
- Вебхуки платёжных систем указывают на тот же домен (URL не менялся — менять не нужно)
- Личный кабинет (если есть) открывается через прокси
- Старый сервер можно выключить после 24–48 ч стабильной работы на новом