Компоненты системы
Репозитории
| Компонент | Репозиторий | Образ |
|---|---|---|
| Панель (API + веб-интерфейс) | xray-panel/backend | ghcr.io/xray-panel/backend |
| Нода | xray-panel/node | ghcr.io/xray-panel/node |
| Страница подписки | xray-panel/subscription-page | ghcr.io/xray-panel/subscription-page |
| Развёртывание | xray-panel/deploy | compose-файлы и nginx-конфиги |
Фронтенд панели собирается в образ бэкенда (frontend-dist внутри контейнера),
поэтому отдельный контейнер для интерфейса не нужен.
Панель
- HTTP API и веб-интерфейс на
APP_PORT(по умолчанию 3000, наружу — только через обратный прокси). - PostgreSQL — основное хранилище. Контейнер
xpanel-db. - Valkey (совместим с Redis) — очереди, кэш, pub/sub. Контейнер
xpanel-redis. - Метрики Prometheus на
METRICS_PORT(по умолчанию 3001), закрыты basic auth изMETRICS_USER/METRICS_PASS.
Панель — единственный компонент, который хранит персональные данные.
Нода
Нода не имеет базы данных и не подключается к панели сама. Панель
обращается к ней по NODE_PORT (по умолчанию 2222) с mutual TLS и JWT.
Отсюда важное следствие: NODE_PORT должен быть доступен с сервера панели,
а не из браузера администратора.
Что нода хранит и куда обращается:
- на диск пользовательские данные не пишутся — только логи Xray в
/var/log/xray(ограничены 10 МБ, без архивов); - в памяти держится набор UUID клиентов для контроля изменений конфигурации;
- исходящих соединений к панели нет — только входящие;
- единственный исходящий запрос с пользовательскими данными — webhook torrent-blocker, и только если он включён в плагине.
Страница подписки
Отдельный контейнер, который читает данные из панели по API-токену и отдаёт
конечному пользователю оформленный список подключений. Работает на
APP_PORT (по умолчанию 3010), наружу — отдельный поддомен с HTTPS.
Имена переменных REMNAWAVE_PANEL_URL и REMNAWAVE_API_TOKEN сохранены для
совместимости: так страница подписки работает и со старой панелью.
Порты
| Порт | Компонент | Доступ |
|---|---|---|
| 3000 | панель | только 127.0.0.1, наружу через nginx |
| 3001 | метрики панели | только 127.0.0.1 |
| 3010 | страница подписки | только 127.0.0.1, наружу через nginx |
| 2222 | нода | доступен с сервера панели |
| произвольные | прокси Xray | открыты клиентам |
Лицензия и атрибуция
XLADA распространяется под AGPL-3.0-only и является производной работой от Remnawave. §13 AGPL требует, чтобы пользователи сервиса могли получить исходный код: убедитесь, что ссылка на репозитории организации доступна вашим пользователям.