Release Notes: v1.5.6-beta5
Release date: 2026-06-02
3x-ui migration (migrate-xui) fixes. No schema migrations and no destructive
changes to existing s-ui data. If you previously failed to import a 3x-ui
database, this release is the fix.
What changed
- Import no longer fails on real databases — the importer hard-coded an
all_timecolumn (andlast_online) that real 3x-ui databases do not have
(neither vanilla mhsanaei nor current normalized forks), so every import
aborted withno such column: all_time. Source reads are now column-aware and
case-insensitive: they project only the columns a given fork actually defines
and default the rest. Verified end to end against a real export — inbounds,
clients, WireGuard endpoints, reality TLS (deduplicated), routing and history
all migrate. - Settings land on the correct keys — the old mapping wrote keys s-ui
ignores (webBasePath,tgBotEnable,tgBotToken,tgBotChatId,tgRunTime,
subEnable). They now map to the canonical s-ui names (webPath,
telegramEnabled,telegramBotToken,telegramChatID,telegramReportCron),
and the mapping is expanded from 9 to 34 settings: web/sub listen, port, path,
domain and certificate keys, subscription display/format toggles, and the
Telegram bot (token, chat, report cron, CPU threshold, backup, proxy). - Unmapped settings are visible, not silent — a source setting with no s-ui
equivalent now appears in the plan as a skipped item with a warning, so you can
see exactly what did not carry over. - Cross-host / cross-domain migration is safe — settings that identify the
source server's host or domain (listen address, panel/sub domain, on-disk TLS
certificate paths, and the host-embedding subscription URLssubURI/
subJsonURI/subClashURI) default to skip in the plan, so importing onto
a different server no longer overwrites and breaks its working bind/domain/TLS
config. Ports and logical paths still migrate. Every item remains togglable in
the review step, so a same-host move can opt them back in. An inbound bound to
a specific source listen address now carries a warning that the address may not
exist on the destination host. - The wizard imports more by default — migrate-xui now ticks settings,
routing and history by default; admin import stays opt-in because it
creates/overwrites credentials.
Upgrade
No manual migration and existing s-ui data is preserved. When importing a 3x-ui
database to a different host/domain, leave the server-specific settings
(domain, listen address, certificate paths, subscription URLs) skipped — the
defaults already do this — and set the new server's domain/TLS afterwards.
Примечания к релизу: v1.5.6-beta5
Дата релиза: 2026-06-02
Исправления миграции 3x-ui (migrate-xui). Без миграций схемы и без
разрушающих изменений существующих данных s-ui. Если раньше импорт базы 3x-ui у
вас не работал — это релиз с исправлением.
Что изменилось
- Импорт больше не падает на реальных базах — импортёр жёстко прописывал
колонкуall_time(иlast_online), которой нет в реальных базах 3x-ui (ни в
ванильном mhsanaei, ни в текущих нормализованных форках), поэтому любой импорт
прерывался сno such column: all_time. Чтение источника теперь учитывает
реальные колонки и регистронезависимо: выбираются только те колонки, что
действительно есть в конкретном форке, остальные заполняются дефолтами.
Проверено end-to-end на реальном экспорте — переносятся инбаунды, клиенты,
WireGuard-эндпоинты, reality TLS (с дедупликацией), маршруты и история. - Настройки попадают в правильные ключи — старый маппинг писал ключи, которые
s-ui игнорирует (webBasePath,tgBotEnable,tgBotToken,tgBotChatId,
tgRunTime,subEnable). Теперь они сопоставляются с каноническими именами
s-ui (webPath,telegramEnabled,telegramBotToken,telegramChatID,
telegramReportCron), а сам маппинг расширен с 9 до 34 настроек: web/sub
listen, порт, путь, домен и сертификаты, переключатели отображения/формата
подписки и Telegram-бот (токен, чат, cron отчётов, порог CPU, бэкап, прокси). - Несопоставленные настройки видимы, а не молчаливы — настройка источника без
эквивалента в s-ui теперь показывается в плане как пропущенный пункт с
предупреждением, так что видно, что именно не перенеслось. - Миграция между хостами/доменами безопасна — настройки, идентифицирующие
хост или домен исходного сервера (адрес прослушивания, домен панели/подписки,
пути к TLS-сертификатам на диске и URL подписок с зашитым хостом —subURI/
subJsonURI/subClashURI), по умолчанию пропускаются в плане, поэтому
импорт на другой сервер больше не перезаписывает и не ломает его рабочую
конфигурацию bind/домена/TLS. Порты и логические пути по-прежнему переносятся.
Любой пункт можно переключить на шаге проверки, поэтому при переезде в пределах
того же хоста их можно включить обратно. Инбаунд, привязанный к конкретному
адресу прослушивания источника, теперь несёт предупреждение, что адреса может не
быть на новом хосте. - Мастер импортирует больше по умолчанию — migrate-xui теперь по умолчанию
отмечает настройки, маршруты и историю; импорт администраторов остаётся
опциональным, так как создаёт/перезаписывает учётные данные.
Обновление
Ручная миграция не нужна, существующие данные s-ui сохраняются. При импорте базы
3x-ui на другой хост/домен оставьте серверо-зависимые настройки (домен, адрес
прослушивания, пути к сертификатам, URL подписок) пропущенными — по умолчанию это
уже так — и задайте домен/TLS нового сервера после импорта.