Для кого: администратор панели. Требуемые права:
subscription_page.view для чтения, subscription_page.deploy для всего остального. Лицензия: ключ core.subscription_page.Что разворачивается
Панель ставит официальную страницу подписок Remnawave из её образа. Движок при этом — параметр, а не зашитое допущение: мастер, установщик и раздел читают его из одного места, поэтому своя страница со временем станет ещё одним значением, а не вторым мастером. Содержимое подписки страница берёт напрямую из Remnawave. Панель ей ничего не пересылает и ничего за неё не решает.Что панель хранит, а что нет
Раздел владеет развёртыванием и наблюдением — и только ими.
Вторая копия пользователей и подписок в панели разъехалась бы с Remnawave в тот же день, когда что-нибудь поменяли мимо панели. Поэтому её нет.
Почему отдельный сервер
Страница подписок — публичный сайт, который открывает каждый ваш клиент. Держать его на одной машине с панелью или с нодой категорически не рекомендуется:- одна дыра в публичном сайте — и злоумышленник оказывается там же, где ключи ко всей инфраструктуре;
- адрес общий: кто нашёл страницу, тот нашёл и сервер за ней;
- нагрузка от клиентов ложится на сервер, который обслуживает вашу инфраструктуру;
- порты 80 и 443 приходится делить с тем, что там уже стоит.
Что видно, когда страница стоит
Три плитки наверху отвечают на три вопроса: отвечает ли страница, сколько осталось сертификату и что со связью с Remnawave. Панель ходит на публичный адрес — тот самый, который открывает клиент, — каждые пять минут; то же делает кнопка Проверить. Срок сертификата снимается там же, из TLS-рукопожатия: «когда он истекает» спрашивают тогда, когда сайт уже не открывается, то есть когда сходить и посмотреть уже нельзя. Ниже идут карточки:- Связь с Remnawave — что увидит клиент, перейдя по ссылке подписки. Настройки, у которых в панели есть другой владелец, раздел показывает, но не меняет. См. Связь с Remnawave.
- История операций — что панель делала с этой страницей и чем это кончилось.
- Обновить страницу — свежий образ и перезапуск; домен и сертификат не трогаются.
- Убрать из панели — панель перестаёт следить за страницей. Сама страница продолжает работать, и выданные клиентам ссылки остаются рабочими.
Права
Двух прав здесь достаточно: кроме самой установки, в разделе нет действий, которые меняют то, что видит клиент. Дробить их мельче значило бы придумывать различия, которых у раздела нет.
Лицензия
Раздел работает по ключуcore.subscription_page. Без действующего тарифа он остаётся читаемым: развёрнутая страница продолжает обслуживать клиентов, и оператор обязан видеть её домен и срок сертификата. Разворачивать, обновлять и менять её панель при этом откажется и скажет, почему.
Второй проверки на стороне самой страницы нет, и это не упущение: разворачивается страница Remnawave, которая про лицензии Axottle ничего не знает и продолжала бы работать при любом их состоянии. Честная граница здесь — панель, а не обещание выключить чужой софт.
Ограничения
- В разделе видна одна страница — установленная.
- Совмещение мастер узнаёт по адресу, который он и так знает: свой публичный адрес, петлевой, сервер страницы статуса, адреса нод из инвентаря. Если вы указали сервер каким-то другим адресом, предупреждения не будет — доказательства тождества машин панель не строит.
- Панель не может снести сервер страницы: удаление стирает только запись в панели. Если сервер больше не нужен, его нужно погасить руками.
- Домен страницы в Remnawave (
SUB_PUBLIC_DOMAIN) панель не выставляет: это переменная окружения чужого процесса. Пока он не выставлен, Remnawave продолжает выдавать клиентам ссылки на старый адрес — см. Связь с Remnawave. - Обновление панель выполняет не сама: реквизиты доступа к серверу она не хранит и ради обновления их не спрашивает, а выдаёт готовую команду.
- Без подключения к Remnawave страницу ставить нечем: и адрес API, и токен уезжают в установщик. Подключений несколько — придётся выбрать, чьи подписки показывает эта страница.
