Для провайдеров
Этот раздел — справочник для VPN- и прокси-провайдеров и разработчиков панелей. Он описывает всё, что mins читает из подписки, ровно так, как это реализовано в клиенте. Чтобы интегрироваться, читать исходный код не нужно.
У mins нет собственных серверов и аккаунтов. Всё, что клиент знает о вашем сервисе, приходит в одном HTTP-ответе: список серверов в теле, настройки в заголовках ответа и в необязательных строках #ключ: значение в начале тела. Большинство ключей, которые отправляют панели Happ и INCY, понимаются.
Что где задаётся
Заголовок раздела «Что где задаётся»| Что нужно настроить | Механизм | Страница |
|---|---|---|
| Список серверов | Тело подписки: список ссылок, base64, Xray JSON | Формат подписки |
| Название подписки, трафик, срок, объявление, ссылки поддержки, интервал обновления | Заголовки ответа (или строки #ключ: значение) |
Заголовки ответа |
| Поведение клиента для этой подписки (пинг, порядок, фрагментация, mux, режим, исключённые маршруты) | Заголовки ответа; чувствительные ждут подтверждения пользователя | Заголовки ответа |
| Что клиент отправляет вашей панели (User-Agent, идентификатор устройства) | Заголовки запроса | Заголовки запроса |
| Имя, описание, флаг, значок и пинг отдельного сервера | Блок mins в Xray JSON сервера |
Блок mins |
| Ссылки на серверы, ссылки «добавить подписку одним нажатием», кнопки Telegram | vless://, hysteria2://, wireguard://, vpn://, mins://add/, https://sr.minsclient.com/ |
Ссылки и deep link |
| Правила маршрутизации и DNS для серверов подписки | Профиль маршрутизации в заголовке routing, в теле или по ссылке |
Профили маршрутизации |
Основные правила
Заголовок раздела «Основные правила»- Клиентом владеет пользователь. Каждое значение, заданное подпиской, перечислено на экране подписки в разделе Задано подпиской; пользователь может переопределить любое из них или вернуть своё глобальное значение. Скрыть настройки провайдер не может.
- Чувствительные настройки требуют подтверждения. Всё, что меняет маршрутизацию трафика устройства, DNS, автозапуск или локальные порты, остаётся в ожидании, пока пользователь не нажмёт Принять. Отклонённое значение не предлагается снова, пока панель не пришлёт другое. Полный список — в разделе Заголовки ответа.
- Слои. Итоговое значение настройки: встроенное по умолчанию, затем глобальная настройка пользователя, затем значение подписки, затем явное переопределение пользователя для этой подписки. Побеждает последний заданный слой.
- Сначала HTTPS. Адрес подписки, ссылки в заголовках и адреса профилей маршрутизации должны быть HTTPS. Подписка по обычному HTTP работает только после подтверждения пользователем.
- Ничего не импортируется молча. Адрес подписки, deep link, QR-код или вставленный текст всегда заканчиваются предпросмотром, который подтверждает пользователь.
- Текст — только текст. Названия, объявления и описания показываются как обычный текст с фиксированными лимитами длины. HTML и Markdown не отображаются.
- Неизвестное игнорируется, а не ломает импорт. Неизвестный заголовок пропускается молча; известный заголовок с некорректным значением или отклонённый mins пропускается и попадает в раздел Не применяется с причиной; остальная подписка импортируется.
Что mins не поддерживает
Заголовок раздела «Что mins не поддерживает»| Не поддерживается | Почему |
|---|---|
Скрытие и блокировка настроек клиента (hide-settings, hide-url, hide-check) |
Клиентом владеет пользователь; провайдеры не скрывают элементы управления. |
Цвета и темы провайдера (color-profile, banner-bg-color, banner-button-color) |
Тема приложения принадлежит пользователю. У информационной карточки возможен только тон red, blue или green через sub-info-color. |
Скрытие системного индикатора VPN (hide-vpn-icon) |
Системный индикатор скрыть нельзя. |
Конфигурации sing-box, включая custom-tunnel-config, и профили Clash |
Поддерживается только импорт конфигураций Xray. JSON с ключами proxies или route отклоняется: «Only Xray configuration imports are supported». |
| VMess, Trojan, Shadowsocks и другие протоколы | Поддерживаются VLESS, Hysteria2, WireGuard и AmneziaWG. Остальные ссылки остаются в списке как неподдерживаемые с причиной «Protocol X is not supported»; JSON-сервер с другим протоколом помечается «Unsupported protocols: …». |
Зашифрованные ссылки Happ и INCY (happ://crypt..., incy://crypt...) |
Отклоняются: «Encrypted Happ/INCY links are not supported». Отправляйте обычные ссылки или адрес подписки. |
| Тихий импорт или импорт одним касанием без предпросмотра | Любой импорт заканчивается предпросмотром, который подтверждает пользователь. |
| Альтернативный формат HWID, лимиты памяти Xray | Не описаны в первоисточнике и не относятся к этому движку. |
Полный список отклоняемых заголовков с причинами — в разделе Заголовки ответа.
Минимальный совместимый ответ
Заголовок раздела «Минимальный совместимый ответ»HTTP/1.1 200 OKContent-Type: text/plain; charset=utf-8profile-title: Example VPNprofile-update-interval: 12subscription-userinfo: upload=0; download=1073741824; total=107374182400; expire=1798761600
vless://11111111-1111-4111-8111-111111111111@fi.example.com:443?type=ws&security=tls&sni=fi.example.com&path=%2Fws&host=fi.example.com#FinlandПолный пример со всеми частыми заголовками — на странице Заголовки ответа.