Требования
Исходный код
Панель — xray-panel/backend · нода — xray-panel/node · страница подписки — xray-panel/subscription-page
Сервер панели
| Ресурс | Минимум | Комментарий |
|---|---|---|
| CPU | 2 ядра | |
| RAM | 4 ГБ | на тестовом стенде работает и на 3,8 ГБ |
| Диск | 20 ГБ | база растёт вместе с историей трафика |
| ОС | Linux с Docker и Docker Compose |
PostgreSQL и Valkey поднимаются контейнерами — ставить их отдельно не нужно. Дополнительно понадобятся домен и TLS-сертификат: без обратного прокси с HTTPS панель не запустится (см. Обратный прокси).
Сервер ноды
| Ресурс | Минимум |
|---|---|
| CPU | 1 ядро |
| RAM | 1 ГБ |
| Диск | 1 ГБ |
| Docker | обязателен |
Порты:
- 2222 (
NODE_PORT) — управление нодой. Должен быть доступен с сервера панели. Открывать его всему интернету не нужно: достаточно правила firewall на IP панели. - порты прокси — задаются конфигурацией Xray (inbound). Открыты клиентам.
--network hostв контейнере ноды обязателен: Xray должен слушать порты самостоятельно, а проброс портов ломает определение реального IP клиента.
Домены
| Домен | Обязателен | Назначение |
|---|---|---|
panel.example.com | да | панель и API |
sub.example.com | нет | страница подписки |
Значения попадают в .env:
PANEL_DOMAIN=https://panel.example.com
FRONT_END_DOMAIN=https://panel.example.com
SUB_PUBLIC_DOMAIN=panel.example.com/api/sub
Примечание
SUB_PUBLIC_DOMAIN указывается без https:// и без слэша на конце: это
значение подставляется в заголовок profile-web-page-url и в ссылки, которые
получает клиент.
Совместимость
- Миграции базы применяются автоматически при старте контейнера.
- При переезде с Remnawave база совместима: см. Переезд с Remnawave.