> ## Documentation Index
> Fetch the complete documentation index at: https://docs.axottle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Страница подписок: обзор

> Страница, с которой клиент забирает конфиг: зачем ей отдельный сервер, что панель о ней знает и чем управляет.

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

<Info>Для кого: администратор панели. Требуемые права: `subscription_page.view` для чтения, `subscription_page.deploy` для всего остального. Лицензия: ключ `core.subscription_page`.</Info>

## Что разворачивается

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

Содержимое подписки страница берёт напрямую из Remnawave. Панель ей ничего не пересылает и ничего за неё не решает.

## Что панель хранит, а что нет

Раздел владеет развёртыванием и наблюдением — и только ими.

| Панель знает                                                     | Панель не знает                                                                      |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| Где страница стоит, на каком домене отвечает, что с сертификатом | Ни одного пользователя, ни одной подписки, ни одного конфига                         |
| Версию развёрнутой страницы и историю операций с ней             | Что именно увидел клиент, открывший ссылку                                           |
| Состояние связи с Remnawave и снимок её настроек подписки        | Реквизиты доступа к серверу: они приходят в одном запросе, используются и забываются |

Вторая копия пользователей и подписок в панели разъехалась бы с Remnawave в тот же день, когда что-нибудь поменяли мимо панели. Поэтому её нет.

## Почему отдельный сервер

Страница подписок — публичный сайт, который открывает каждый ваш клиент. Держать его на одной машине с панелью или с нодой категорически не рекомендуется:

* одна дыра в публичном сайте — и злоумышленник оказывается там же, где ключи ко всей инфраструктуре;
* адрес общий: кто нашёл страницу, тот нашёл и сервер за ней;
* нагрузка от клиентов ложится на сервер, который обслуживает вашу инфраструктуру;
* порты 80 и 443 приходится делить с тем, что там уже стоит.

Мастер этого не запрещает. Если выбранный сервер окажется сервером панели или узнанной нодой, он покажет отдельный экран с предупреждением и на несколько секунд оставит кнопку подтверждения недоступной — чтобы экран прочитали, а не пролистали. Решение остаётся за оператором; если ставите так временно, планируйте перенос.

<Warning>
  Под страницу подписок нужен отдельный **чистый** сервер: свежий Linux, где кроме ОС и доступа по SSH ничего нет. Установщик ставит Docker, поднимает контейнеры страницы и занимает 80 и 443 под сертификат — на занятой машине это упирается в чужие порты. Подробнее — [Чистый сервер](/ru/getting-started/requirements#чистый-сервер).
</Warning>

Совмещение со **страницей статуса** — не предупреждение, а отказ: её рантайм сам держит 80 и 443 и чужие сайты отдавать не умеет, поэтому мастер потребует другой сервер.

## Что видно, когда страница стоит

Три плитки наверху отвечают на три вопроса: отвечает ли страница, сколько осталось сертификату и что со связью с Remnawave.

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

Ниже идут карточки:

* **Связь с Remnawave** — что увидит клиент, перейдя по ссылке подписки. Настройки, у которых в панели есть другой владелец, раздел показывает, но не меняет. См. [Связь с Remnawave](/ru/subscription-page/remnawave).
* **История операций** — что панель делала с этой страницей и чем это кончилось.
* **Обновить страницу** — свежий образ и перезапуск; домен и сертификат не трогаются.
* **Убрать из панели** — панель перестаёт следить за страницей. Сама страница продолжает работать, и выданные клиентам ссылки остаются рабочими.

Пока страница не поставлена, раздел показывает мастер и ничего больше: пустой обзор с прочерками вместо домена и сертификата предлагал бы разглядывать отсутствие того, чего ещё не заводили.

## Права

| Право                      | Что открывает                                                                                      |
| -------------------------- | -------------------------------------------------------------------------------------------------- |
| `subscription_page.view`   | Чтение раздела: домен, состояние страницы, сертификат, связь с Remnawave, история операций         |
| `subscription_page.deploy` | Всё, что дотягивается до сервера, DNS-зоны или настроек Remnawave: установка, обновление, удаление |

Двух прав здесь достаточно: кроме самой установки, в разделе нет действий, которые меняют то, что видит клиент. Дробить их мельче значило бы придумывать различия, которых у раздела нет.

## Лицензия

Раздел работает по ключу `core.subscription_page`. Без действующего тарифа он остаётся **читаемым**: развёрнутая страница продолжает обслуживать клиентов, и оператор обязан видеть её домен и срок сертификата. Разворачивать, обновлять и менять её панель при этом откажется и скажет, почему.

Второй проверки на стороне самой страницы нет, и это не упущение: разворачивается страница Remnawave, которая про лицензии Axottle ничего не знает и продолжала бы работать при любом их состоянии. Честная граница здесь — панель, а не обещание выключить чужой софт.

## Ограничения

* В разделе видна одна страница — установленная.
* Совмещение мастер узнаёт по адресу, который он и так знает: свой публичный адрес, петлевой, сервер страницы статуса, адреса нод из инвентаря. Если вы указали сервер каким-то другим адресом, предупреждения не будет — доказательства тождества машин панель не строит.
* Панель не может снести сервер страницы: удаление стирает только запись в панели. Если сервер больше не нужен, его нужно погасить руками.
* Домен страницы в Remnawave (`SUB_PUBLIC_DOMAIN`) панель не выставляет: это переменная окружения чужого процесса. Пока он не выставлен, Remnawave продолжает выдавать клиентам ссылки на старый адрес — см. [Связь с Remnawave](/ru/subscription-page/remnawave#ручной-шаг-домен-страницы-в-remnawave).
* Обновление панель выполняет не сама: реквизиты доступа к серверу она не хранит и ради обновления их не спрашивает, а выдаёт готовую команду.
* Без подключения к Remnawave страницу ставить нечем: и адрес API, и токен уезжают в установщик. Подключений несколько — придётся выбрать, чьи подписки показывает эта страница.

Связанные страницы: [Установка страницы подписок](/ru/subscription-page/installation), [Связь с Remnawave](/ru/subscription-page/remnawave), [Подключение Remnawave](/ru/remnawave/connections), [Чистый сервер](/ru/getting-started/requirements#чистый-сервер).
