Задача: Перенести инфраструктуру проекта на новые серверы (Ubuntu 24.04), выполнить слияние рассинхронизированных баз данных, настроить безопасное сетевое взаимодействие между серверами и переподключить управляющего Telegram-бота на Python с обновлением логики генерации ссылок.
Текущее состояние системы:
- Доступ к текущей веб-панели администрирования 3x-ui есть только через браузер (доступна выгрузка актуального файла БД x-ui.db).
- Доступа по SSH к старому хосту нет. В панели заведено 33 активных клиента внутри одного инбаунда (VMess + WebSocket, без TLS).
- Бэкап исходного кода и базы данных Telegram-бота имеется (язык Python), но бэкап устарел на 2 месяца.
- Доступы к двум новым чистым VPS на Ubuntu 24.04 в Timeweb Cloud (один в РФ, один в Амстердаме).
- История успешных транзакций за последние 2 месяца из ЛК ЮKassa будет предоставлена.
Техническое задание для исполнителя:
1. Слияние и актуализация баз данных.
- Извлечь актуальный список UUID и идентификаторов 33 пользователей из скачанного файла x-ui.db.
- Развернуть старую БД бота из 2-месячного бэкапа и провести слияние с актуальными данными из x-ui.db. Восстановить утерянные профили новых пользователей в базе бота по их UUID.
- На основе предоставленной выгрузки транзакций из ЮKassa актуализировать в базе бота даты окончания подписок и платежные токены для клиентов, зарегистрированных за последние 2 месяца, чтобы не нарушить цикл автоматических рекуррентных списаний.
2. Развертывание и настройка Сервера А (Зарубежный хост, Амстердам)
- Установить актуальный и стабильный форк панели 3x-ui (рекомендуется форк Morytyer) на Ubuntu 24.04.
- Настроить новый входящий инбаунд-поток на базе протокола VLESS + Reality + XTLS-Flow. Подобрать надежный зарубежный домен-донор (не Cloudflare) для маскировки трафика под обычный веб-серфинг.
- Импортировать актуальные UUID всех 33 клиентов в этот новый инбаунд VLESS-Reality.
- Для бесшовного перехода: временно поднять параллельно старый инбаунд VMess+WS на отдельном порту, чтобы пользователи не отключились одновременно до обновления ссылок.
- Настроить файрвол (UFW): сменить стандартные порты, полностью закрыть порт API панели от внешнего мира, разрешив доступ к нему строго для IP-адреса Сервера Б.
3. Настройка Сервера Б (РФ хост, Санкт-Петербург)
- Развернуть код Telegram-бота из бэкапа, настроить демона автозапуска (systemd).
- В конфигурационных файлах бота изменить параметры подключения к API панели на новые данные Сервера А. Строго сохранить переменные среды, отвечающие за платежные токены ЮKassa (SHOP_ID, api_key).
- Модернизировать логику сборки конфигурационных ссылок в коде бота. Шаблон выдачи ключей по кнопке пользователя должен генерировать строку формата vless:// со всеми параметрами Reality (public key, shortId, sni).
Опубликован 20.05.2026 в 12:10