Skip to content

s-ui v1.5.6-beta5

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Jun 08:04

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_time column (and last_online) that real 3x-ui databases do not have
    (neither vanilla mhsanaei nor current normalized forks), so every import
    aborted with no 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 URLs subURI/
    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_timelast_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 нового сервера после импорта.