Шаблоны
Шаблон определяет, что именно получит клиент по ссылке подписки. Панель умеет отдавать несколько форматов, и для каждого формата есть свой шаблон.
Типы шаблонов
| Тип | Формат | Кому |
|---|---|---|
XRAY_JSON | JSON | клиенты на Xray-core (Happ, INCY и другие) |
XRAY_BASE64 | base64-строка | универсальный формат для большинства клиентов |
MIHOMO | YAML | Mihomo / Clash Meta |
CLASH | YAML | Legacy Clash |
STASH | YAML | Stash |
SINGBOX | JSON | Sing-box |
Для каждого типа существует шаблон с именем Default. Его нельзя переименовать
или удалить — это точка возврата, если пользовательский шаблон сломан.
Xray-конфиг
Шаблон типа XRAY_JSON — это каркас клиентского конфига. Хост может ссылаться
на собственный Xray JSON шаблон (xrayJsonTemplateUuid), тогда как остальные
хосты используют шаблон по умолчанию. Правило маршрутизации может принудительно
подставить свой шаблон и проигнорировать хостовый флаг
ignoreHostXrayJsonTemplate.
{
"log": { "loglevel": "warning" },
"outbounds": [
{ "protocol": "vless", "tag": "proxy" }
]
}
Шаблоны подписки и клиентских конфигов
Шаблоны MIHOMO, CLASH и STASH — это YAML с обязательными маркерами, в
которые панель вставляет прокси и группы:
proxies: # LEAVE THIS LINE!
proxy-groups:
- name: '→ XLADA'
type: 'select'
proxies: # LEAVE THIS LINE!
rules:
- MATCH,→ XLADA
Маркеры # LEAVE THIS LINE! удалять нельзя. SINGBOX и XRAY_JSON хранятся
как JSON, а XRAY_BASE64 — это тот же Xray-конфиг, закодированный в base64.
Переменные подстановки
Пользовательские тексты в подписке собираются из переменных вида {{КЛЮЧ}}.
Они работают в примечании хоста (remark), в customRemarks и в
пользовательских заголовках ответа:
Осталось {{TRAFFIC_LEFT}} из {{TOTAL_TRAFFIC}}, дней: {{DAYS_LEFT}}
Подписка: {{SUBSCRIPTION_URL}}
Сброс: {{NEXT_TRAFFIC_RESET_AT:format=DD.MM.YYYY}}
| Переменная | Значение |
|---|---|
USERNAME, EMAIL, TELEGRAM_ID, TAG, DESCRIPTION | данные пользователя |
STATUS | статус (ACTIVE, LIMITED, …) |
TRAFFIC_USED, TRAFFIC_LEFT, TOTAL_TRAFFIC | трафик в читаемом виде |
TRAFFIC_USED_BYTES, TRAFFIC_LEFT_BYTES, TOTAL_TRAFFIC_BYTES, LIFETIME_USED_BYTES | трафик в байтах |
DAYS_LEFT, EXPIRE_UNIX | срок действия |
SUBSCRIPTION_URL, SHORT_UUID, ID | ссылка и идентификаторы |
RESET_STRATEGY | период сброса трафика |
CREATED_AT_UNIX, LAST_TRAFFIC_RESET_AT, NEXT_TRAFFIC_RESET_AT | даты |
SS_HWID_LIMIT | лимит устройств |
У STATUS, RESET_STRATEGY, LAST_TRAFFIC_RESET_AT и NEXT_TRAFFIC_RESET_AT
есть аргументы — например, {{STATUS:ACTIVE=Всё хорошо}} или
{{NEXT_TRAFFIC_RESET_AT:format=DD.MM.YYYY}}. Префикс rwEncodeBase64: в начале
значения кодирует результат в base64.
Переменные в заголовках и customRemarks позволяют показать остаток трафика
прямо в названии подписки, не открывая панель. Настраивается это в разделе
настроек подписки.
Неизвестный ключ остаётся в тексте как есть. Проверяйте результат в клиенте, прежде чем раскатывать шаблон на всех.
Что дальше
- Правила маршрутизации — какой шаблон отдать клиенту.
- Хосты — привязка Xray JSON шаблона к хосту.
- Шаблон Mihomo — готовый пример.
- Клиенты — какие приложения что поддерживают.