Страница подписки
Subscription Page - страница для пользователей (https://sub.yourdomain.com/<shortUuid>): инструкции по подключению и QR-коды для приложений (Happ, sing-box, v2rayNG, Clash, Shadowrocket). Она также скрывает домен и IP панели от клиентов.
GoWave совместим с официальным образом remnawave/subscription-page.
Подготовка
Заголовок раздела «Подготовка»- В панели откройте Настройки, затем API-токены.
- Создайте токен с правами для страницы подписки и скопируйте его.
Вариант 1: на сервере панели
Заголовок раздела «Вариант 1: на сервере панели»-
В
.envпанели (/opt/gowave-docker/.envдля Docker,/opt/gowave/.envдля systemd) укажите домен страницы:SUB_PUBLIC_DOMAIN=sub.yourdomain.comИ перезапустите панель:
docker compose up -d(Docker) илиsystemctl restart gowave(systemd). -
Создайте
/opt/gowave-sub/docker-compose.yml. Страница работает в обычной сети Docker, а её порт опубликован только на127.0.0.1: снаружи до неё не достучаться в обход reverse proxy, и правило файрвола не нужно. Как страница обращается к панели, зависит от способа установки панели.Панель в Docker. Страница подключается к Docker-сети панели
gowave-networkи обращается к контейнеру панели напрямую поhttp://gowave:3000, мимо reverse proxy. Это та же схема, что у Remnawave с еёremnawave-network:services:gowave-subscription-page:image: remnawave/subscription-page:latestcontainer_name: gowave-subpagehostname: gowave-subpagerestart: alwaysports:- "127.0.0.1:3010:3010"environment:- APP_PORT=3010- REMNAWAVE_PANEL_URL=http://gowave:3000- REMNAWAVE_API_TOKEN=ВАШ_API_ТОКЕН- TRUST_PROXY=1networks:- gowave-networknetworks:gowave-network:external: trueСначала запустите панель: сеть
gowave-networkпоявляется послеdocker compose up -dв/opt/gowave-docker. Еслиdocker network lsеё не показывает,docker-compose.ymlпанели скачан до появления этой сети: скачайте актуальный (или перенесите из него секцииnetworks) и снова выполнитеdocker compose up -d.Панель через systemd. Панель слушает
127.0.0.1хоста, а из контейнера этот адрес недоступен, поэтому страница обращается к панели через её домен:services:gowave-subscription-page:image: remnawave/subscription-page:latestcontainer_name: gowave-subpagerestart: alwaysports:- "127.0.0.1:3010:3010"environment:- APP_PORT=3010- REMNAWAVE_PANEL_URL=https://panel.yourdomain.com- REMNAWAVE_API_TOKEN=ВАШ_API_ТОКЕН- TRUST_PROXY=1В
REMNAWAVE_PANEL_URLуказывается адрес панели.APP_PORTзадаёт порт самой страницы подписки. Если меняетеAPP_PORT, поменяйте порт и вports, и в reverse proxy. -
Запустите:
cd /opt/gowave-sub && docker compose up -d. -
Направьте
sub.yourdomain.comна127.0.0.1:<APP_PORT>в reverse proxy. Для Caddy сAPP_PORT=3010:sub.yourdomain.com {encode zstd gzipreverse_proxy 127.0.0.1:3010}
Вариант 2: на отдельном сервере
Заголовок раздела «Вариант 2: на отдельном сервере»Так клиенты не узнают IP сервера панели.
-
На сервере панели укажите
SUB_PUBLIC_DOMAIN=sub.yourdomain.comв.envи перезапустите панель. -
На отдельном сервере создайте
docker-compose.yml:services:gowave-subscription-page:image: remnawave/subscription-page:latestcontainer_name: gowave-subpagerestart: alwaysports:- "127.0.0.1:3010:3010"environment:- APP_PORT=3010- REMNAWAVE_PANEL_URL=https://panel.yourdomain.com- REMNAWAVE_API_TOKEN=ВАШ_API_ТОКЕН- TRUST_PROXY=1 -
Запустите
docker compose up -dи направьтеsub.yourdomain.comна127.0.0.1:3010в reverse proxy.