Skip to main content
Содержимое подписки страница берёт напрямую из Remnawave, поэтому от её настроек зависит, что клиент увидит по ссылке: страницу с кнопками, сырой конфиг или JSON. Карточка Связь с Remnawave на экране развёрнутой страницы показывает это одним экраном.
Для кого: администратор панели. Требуемые права: subscription_page.view для чтения, subscription_page.deploy для включения настройки. Лицензия: ключ core.subscription_page.

Кто владеет настройкой

Читать — свободно, писать — только по явной команде и только там, где у настройки нет другого владельца. Причина конкретная: те же настройки подписки трогает применение схем подключения. Раздел, который «на всякий случай» приводил бы их к своему представлению о правильном, молча отменял бы чужое решение — а следующее применение схемы отменяло бы его обратно, и так по кругу, пока кто-нибудь не заметит, что балансировка сломалась. Поэтому настройку с другим владельцем раздел показывает и объясняет, но не переписывает. В карточке она помечена как задаётся схемами подключения, и кнопки исправления у неё нет.

Что проверяется

Проверка ничего не меняет: её запускает открытие карточки и кнопка обновления. Включение — отдельное действие оператора.
Если панель не смогла выяснить, нужна ли serveJsonAtBaseSubscription применённым схемам, она ведёт себя так, будто владелец есть, и настройку не трогает. Не сумев узнать, чьё это, безопаснее не трогать вовсе.

Что раздел вправе включить сам

Одну настройку — isProfileWebpageUrlEnabled. Это буквально «отдавать клиенту адрес страницы»: у неё нет второго владельца в панели, и её включение ничего чужого не ломает. Кнопка Включить собирает запрос из свежего чтения настроек, а не из показанного вам снимка: между двумя чтениями настройку мог поменять кто угодно ещё, и запись по старому снимку вернула бы заодно те значения, которые с тех пор изменились. Действие попадает в историю операций страницы и в аудит панели.

Ручной шаг: домен страницы в Remnawave

Одно действие панель выполнить не может и говорит об этом прямо: домен страницы задаётся переменной окружения самой Remnawave. Панель туда не ходит намеренно: это чужой процесс на чужом сервере, и правка его окружения из веб-интерфейса была бы способом уронить панель клиента одной опечаткой в поле ввода. Точное значение раздел показывает готовым к копированию.
Пока переменная не выставлена, Remnawave продолжает выдавать клиентам ссылки на прежний адрес. Страница при этом работает и отвечает — по ней просто никто не приходит, и по внешним признакам это выглядит как «поставили, а толку нет».

Какое подключение показывает страница

Страница привязана к одному подключению Remnawave.
  • Подключение одно — берётся оно.
  • Подключений несколько — нужно выбрать. Угадывать нельзя: страница показала бы подписки не той панели, и заметили бы это клиенты, а не оператор.
  • Привязанное подключение удалили — раздел скажет, что его больше нет, и попросит выбрать другое.
  • Подключений нет вовсе — страницу не из чего наполнять; сначала подключите Remnawave.

Состояния связи

Состояние обновляется при проверке связи и после установки страницы: сверка с Remnawave — последняя стадия установки, и её результат виден сразу, а не через сутки от клиентов.

Проверка

Карточка Связь с Remnawave без предупреждений, SUB_PUBLIC_DOMAIN в Remnawave равен домену страницы, Remnawave перезапущена. Ссылка подписки, открытая в браузере, показывает страницу с кнопками и QR — не текст конфига и не JSON.

Откат

  • Включённую разделом настройку isProfileWebpageUrlEnabled можно выключить обратно в интерфейсе Remnawave: раздел на этом не настаивает и повторно её не включает.
  • SUB_PUBLIC_DOMAIN возвращается прежним значением в .env и перезапуском Remnawave. Клиенты снова начнут получать ссылки на старый адрес.
Связанные страницы: Страница подписок: обзор, Установка страницы подписок, Подключение Remnawave, Синхронизация.