Подписки
Подписка — единственное, что видит клиент. По одной ссылке приложение получает список локаций в том формате, который понимает.
Форматы
Формат определяется по User-Agent приложения. Правила проверяются сверху вниз, срабатывает первое подходящее; если не подошло ни одно — решает встроенный список известных приложений.
| Формат | Кому |
|---|---|
| Xray JSON | Happ, Streisand, v2Box, NekoBox |
| Clash / Mihomo | Clash Meta, FlClash, Stash |
| sing-box | sing-box, Hiddify |
| base64-список | v2rayNG, Shadowrocket и всё неизвестное |
| Веб-страница | Браузер: приложения под платформу и кнопка установки |
Проверить, что именно получит конкретное приложение, можно в панели: раздел Правила ответов, поле «Вставьте User-Agent».
Отдельный сервер
Сервис подписок выносится на другой сервер и другой домен: тогда блокировка панели не отрезает клиентов от конфигов, а машина с подписками вообще не имеет доступа к базе.
SUB_MODE=api
PANEL_URL=https://панель.ваш-домен
SUB_SERVICE_TOKEN=<ключ из панели>
Ключ выпускается в Настройках → Сервис подписки и показывается один раз. Там же панель отдаёт готовые команды установки и блок для Caddy.
Устройства и лимит
Приложения представляются заголовками (x-hwid, x-device-os,
x-device-model, x-app-version). По ним панель ведёт список
устройств клиента и следит за лимитом из тарифа.
Лимит проверяется только для нового устройства: уже зарегистрированное продолжает работать, даже если лимит потом уменьшили — иначе человек внезапно терял бы доступ на телефоне, которым пользовался вчера.
При превышении клиент получает не пустоту, а понятную строку в списке локаций: сколько устройств занято и что делать.
curl устройствами не считаются: они этих
заголовков не шлют.Когда подписка не отдаёт конфиги
- Срок истёк или закончился трафик.
- Клиент отключён администратором.
- Ни один инбаунд его сквадов не поднят на живой ноде.
- Исчерпан лимит устройств.
Во всех случаях вместо локаций приходит причина — её текст настраивается в
Настройках подписки и поддерживает подстановки {date},
{days}, {tariff}.
Кто запрашивал
Раздел Запросы подписки показывает, кто, чем и когда обращался по ссылке. Три запроса с одного адреса — норма, это обновление по интервалу. Десятки разных адресов за час означают, что ссылка утекла: отзовите подписку из карточки клиента, это сменит короткий идентификатор и убьёт старую ссылку.