SSTEALTHNETSOFTWARE

Подписки

Подписка — единственное, что видит клиент. По одной ссылке приложение получает список локаций в том формате, который понимает.

Форматы

Формат определяется по User-Agent приложения. Правила проверяются сверху вниз, срабатывает первое подходящее; если не подошло ни одно — решает встроенный список известных приложений.

ФорматКому
Xray JSONHapp, Streisand, v2Box, NekoBox
Clash / MihomoClash Meta, FlClash, Stash
sing-boxsing-box, Hiddify
base64-списокv2rayNG, Shadowrocket и всё неизвестное
Веб-страницаБраузер: приложения под платформу и кнопка установки

Проверить, что именно получит конкретное приложение, можно в панели: раздел Правила ответов, поле «Вставьте User-Agent».

Отдельный сервер

Сервис подписок выносится на другой сервер и другой домен: тогда блокировка панели не отрезает клиентов от конфигов, а машина с подписками вообще не имеет доступа к базе.

SUB_MODE=api
PANEL_URL=https://панель.ваш-домен
SUB_SERVICE_TOKEN=<ключ из панели>

Ключ выпускается в Настройках → Сервис подписки и показывается один раз. Там же панель отдаёт готовые команды установки и блок для Caddy.

Рядом с панелью сабка читает базу напрямую: это быстрее похода в API, и служебный ключ ей вообще не нужен.

Устройства и лимит

Приложения представляются заголовками (x-hwid, x-device-os, x-device-model, x-app-version). По ним панель ведёт список устройств клиента и следит за лимитом из тарифа.

Лимит проверяется только для нового устройства: уже зарегистрированное продолжает работать, даже если лимит потом уменьшили — иначе человек внезапно терял бы доступ на телефоне, которым пользовался вчера.

При превышении клиент получает не пустоту, а понятную строку в списке локаций: сколько устройств занято и что делать.

Браузер и curl устройствами не считаются: они этих заголовков не шлют.

Когда подписка не отдаёт конфиги

Во всех случаях вместо локаций приходит причина — её текст настраивается в Настройках подписки и поддерживает подстановки {date}, {days}, {tariff}.

Кто запрашивал

Раздел Запросы подписки показывает, кто, чем и когда обращался по ссылке. Три запроса с одного адреса — норма, это обновление по интервалу. Десятки разных адресов за час означают, что ссылка утекла: отзовите подписку из карточки клиента, это сменит короткий идентификатор и убьёт старую ссылку.