github deposist/s-ui-x v1.5.7
s-ui v1.5.7

latest releases: v1.5.10-beta7, v1.5.10-beta6, v1.5.10-beta5...
27 days ago

Release Notes: v1.5.7 (2026‑06‑11)

First stable release of the 1.5.7 line, consolidating the 1.5.7‑beta1..beta10 series. No manual migration required — one additive database column and a settings unique index are created automatically on first start.

Key features and improvements

1. Paid Subscriptions (experimental, off by default)

A client‑facing Telegram bot with encrypted token offering:

  • subscription links, per‑protocol share links and QR codes for bound clients;
  • live usage stats (used vs. limit, days left, online status, total traffic);
  • self‑registration with configurable free trial (global cap + per‑user rate limit);
  • tariff management for admins (price, +days, +traffic);
  • payments and renewals via 6 providers: Telegram Stars, YooKassa, Stripe, CryptoBot, PayMaster, and external links;
  • idempotent, server‑verified renewals (no double charging on retries);
  • payment menu with Buy/Renew, My purchases, and Request a refund;
  • admin Orders tab with refund capability and optional claw‑back of granted days/traffic;
  • broadcasts to all bound clients and editable /start greeting;
  • per‑module Telegram egress via proxy or sing‑box outbounds.

Note: Existing setups are unaffected until the module is enabled. For production, set SUI_SECRETBOX_KEY to encrypt bot and payment tokens outside the database.

2. No‑restart client and TLS apply

Changes to clients and TLS certificates now apply without restarting the core:

  • adding, editing, enabling/disabling, or deleting a client hot‑reloads only affected inbounds;
  • revoked/disabled credentials stop working immediately;
  • connections on unrelated inbounds remain active;
  • IP‑limit changes (limitIp, mode) apply immediately (not after 30‑second cache TTL);
  • TLS certificate edits hot‑reload only referencing inbounds/services;
  • creating/deleting TLS entries no longer affects the core;
  • fallback to full core restart if hot reload fails (prevents stale configuration).

3. Refreshed Nexus interface

Dark "technical" reference design with:

  • exact palette with cyan accent;
  • single system font;
  • monospace IP/port/UUID cells;
  • coloured status badges and TLS pills;
  • page header with live counts and search in top bar;
  • compact flat sidebar;
  • bulk client Add/Edit as proper drawers;
  • Paid Subscriptions screen localized (EN/RU);
  • unsaved‑changes confirmation for all entity forms.

4. Security hardening

  • updated to Go 1.26.4 (closes GO-2026-5037, GO-2026-5039);
  • API‑token scopes enforced on every apiv2 action;
  • login no longer reveals username existence (timing oracle closed);
  • brute force slowed by per‑username escalating delay (tarpit) + per‑IP block;
  • session ID rotates on login;
  • changing admin password signs out all other sessions and WebSocket tokens;
  • secrets re‑sealed at startup with SUI_SECRETBOX_KEY;
  • URL credentials masked in logs;
  • session cookies Secure by default;
  • HSTS honours X-Forwarded-Proto only from trusted proxy;
  • x‑ui import validates geoip/geosite codes;
  • new audit signals with real‑time alerts (account lockout, database export).

5. Performance improvements

  • frontend bundle reduced from 6.2 MB to 2.5 MB (−60 %) with lazy moment/date‑picker and SVG icons;
  • IP monitor writes pending records in single batched upsert;
  • subscription hot path caches display settings (~8 fewer queries per request);
  • order history indexed.

Breaking changes (vs v1.5.6)

  • Scoped API tokens lose unauthorized access (use admin or appropriate write token for config changes).
  • 3x‑ui scheduled sync and remote import removed — import is now one‑shot local .db upload only.
  • Behaviour changes:
    • changing admin password signs out all other sessions;
    • per‑username login lockout is a delay (tarpit), not a hard block.

Upgrade instructions

  1. No manual migration needed — database updates run automatically on first start.
  2. Review breaking changes if you use scoped API tokens or relied on 3x‑ui sync/import.
  3. Enable Paid Subscriptions on a non‑critical instance first before production use.

RU

Примечания к релизу: v1.5.7 (2026‑06‑11)

Первый стабильный релиз линейки 1.5.7, объединяющий серию 1.5.7‑beta1..beta10. Ручная миграция не требуется — одна добавочная колонка БД и уникальный индекс settings создаются автоматически при первом старте.

Ключевые функции и улучшения

1. «Платные подписки» (экспериментально, выключено по умолчанию)

Клиентский Telegram‑бот с зашифрованным токеном, предлагающий:

  • ссылки подписки, ссылки по протоколам и QR‑коды для привязанных клиентов;
  • живую статистику использования (израсходовано/лимит, дни, онлайн, суммарный трафик);
  • саморегистрацию с настраиваемым пробным периодом (глобальный лимит + ограничение частоты);
  • управление тарифами для админов (цена, +дни, +трафик);
  • платежи и продления через 6 провайдеров: Telegram Stars, YooKassa, Stripe, CryptoBot, PayMaster и внешние ссылки;
  • идемпотентные, проверяемые на сервере продления (без двойных списаний при повторах);
  • меню «Оплата» с опциями Купить/Продлить, Мои покупки и Оформить возврат;
  • вкладку Orders в панели с возможностью возврата и опциональным отзывом выданных дней/трафика;
  • рассылки всем привязанным клиентам и редактируемое приветствие /start;
  • отдельный эгресс Telegram через прокси или sing‑box‑outbounds.

Примечание: Существующие установки не затронуты, пока модуль не включён. Для продакшена задайте SUI_SECRETBOX_KEY, чтобы шифровать токены бота и платёжных провайдеров вне базы.

2. Применение изменений клиентов и TLS без перезапуска ядра

Изменения теперь применяются без перезапуска ядра:

  • добавление, редактирование, включение/выключение или удаление клиента перезагружает только затронутые inbound‑ы;
  • отозванные/отключённые учётные данные перестают работать сразу;
  • соединения на остальных inbound‑ах остаются активными;
  • изменения IP‑лимита (limitIp, режим) применяются немедленно (а не после 30‑секундного TTL кэша);
  • редактирование TLS‑сертификата перезагружает только ссылающиеся inbound‑ы/сервисы;
  • создание/удаление TLS‑записей не затрагивает ядро;
  • при ошибке горячей перезагрузки — откат к полному перезапуску ядра (предотвращает работу на устаревшей конфигурации).

3. Обновлённый интерфейс Nexus

Тёмный «технический» референс‑дизайн с:

  • точной палитрой с cyan‑акцентом;
  • единым системным шрифтом;
  • моноширинными ячейками IP/порт/UUID;
  • цветными бейджами статусов и пилюлями TLS;
  • заголовком страницы с живыми счётчиками и поиском в верхней панели;
  • компактным плоским сайдбаром;
  • массовыми добавлением/правкой клиентов как полноценными drawer’ами;
  • экраном «Платных подписок», локализованным (EN/RU);
  • подтверждением несохранённых изменений для всех форм.

4. Усиление безопасности

  • обновление до Go 1.26.4 (закрывает GO-2026-5037, GO-2026-5039);
  • проверка скоупов API‑токенов на каждом действии apiv2;
  • логин больше не выдаёт существование имени пользователя (закрыт timing‑оракул);
  • перебор замедляется нарастающей задержкой (tarpit) по имени поверх блокировки по IP;
  • ID сессии ротируется при входе;
  • смена пароля администратора завершает все остальные сессии и WebSocket‑токены;
  • секреты перешифровываются при старте при заданном SUI_SECRETBOX_KEY;
  • учётные данные в URL маскируются в логах;
  • cookie сессии Secure по умолчанию;
  • HSTS доверяет X-Forwarded-Proto только от доверенного прокси;
  • импорт x‑ui валидирует коды geoip/geosite;
  • новые аудит‑сигналы с алертами в реальном времени (блокировка аккаунта, экспорт базы).

5. Улучшения производительности

  • фронтенд‑бандл уменьшен с 6,2 МБ до 2,5 МБ (−60 %) за счёт ленивой загрузки moment/date‑picker и использования SVG‑иконок;
  • IP‑монитор записывает накопленные записи единым батч‑upsert’ом;
  • «горячий путь» подписок кэширует настройки отображения (~8 запросов меньше на запрос);
  • история заказов проиндексирована.

6. Защита релизного конвейера и цепочки поставок

  • релизный workflow собирает фронтенд в режиме fail‑closed (npm ci + те же lint/test‑гейты, что в CI);
  • бинарник встраивает ассеты через go:embed all:;
  • сборка префиксует имена ассетов — это предотвращает случайное удаление хэшированного чанка (устраняет класс багов «пустая панель» из beta6/beta9);
  • сторонние и Docker GitHub Actions запинены на commit SHA;
  • Dependabot поддерживает актуальность зависимостей.

Ломающие изменения (относительно v1.5.6)

  1. Скоупированные API‑токены теряют доступ, которого не должны были иметь. Интеграции, использующие токены read/observability/telegram/database для записи конфига, перезапуска панели или чтения настроек, теперь отклоняются. Используйте токен admin или подходящий write‑токен.

  2. Удалены плановая синхронизация и удалённый импорт 3x‑ui. Теперь импорт доступен только как разовая загрузка локального .db файла:

    • через мастер в UI;
    • через API: POST /api/import-xui[/plan|/apply|/rollback];
    • через CLI: s-ui import-xui --src.

    Следующие компоненты удалены:

    • команда s-ui sync-xui;
    • флаги --remote/--schedule;
    • remote/sync API‑маршруты;
    • скоуп токена xui_remote.

    Таблицы xui_sync_profiles и xui_known_hosts автоматически удаляются при первом старте.

  3. Изменения поведения:

    • смена пароля администратора завершает все остальные сессии и WebSocket‑токены;
    • блокировка логина по имени пользователя теперь реализована как нарастающая задержка (tarpit), а не жёсткий блок.

Процесс обновления

  1. Ручная миграция не требуется. При первом запуске:

    • автоматически создаётся добавочная колонка БД и уникальный индекс settings;
    • при заданном SUI_SECRETBOX_KEY выполняется однократное перешифрование секретов.
  2. Перед обновлением:

    • проверьте ломающие изменения, если используете скоупированные API‑токены или полагались на плановую синхронизацию / удалённый импорт 3x‑ui;
    • протестируйте «Платные подписки» на некритичном экземпляре перед включением в продакшене.
  3. После обновления:

    • «Платные подписки» остаются выключены до ручного включения;
    • убедитесь, что SUI_SECRETBOX_KEY задан для продакшена (защита токенов бота и платежей);
    • проверьте работу интеграций с API‑токенами — возможно, потребуется обновить их права доступа.

Важно: При первом обновлении сессии, подписанные прежним встроенным fallback‑ключом, будут разлогинены один раз. Пользователям потребуется войти заново.

Don't miss a new s-ui-x release

NewReleases is sending notifications on new releases.