Отдельный сервер
Установка на отдельный сервер означает, что вы установите страницу подписки на другой сервер, отличный от сервера Remnawave Panel.
Шаг 1 - Подготовка файла .env
Выполните эти изменения на сервере, где установлен Remnawave Panel.
Отредактируйте файл /opt/remnawave/.env и измените SUB_PUBLIC_DOMAIN на доменное имя вашей страницы подписки.
cd /opt/remnawave && nano .env
Измените SUB_PUBLIC_DOMAIN на доменное имя вашей страницы подписки. Доменное имя должно быть без http или https.
SUB_PUBLIC_DOMAIN=subscription.domain.com
Не забудьте перезапустить контейнер Remnawave Panel:
cd /opt/remnawave && docker compose down remnawave && docker compose up -d && docker compose logs -f
Шаг 2 - Создание файла docker-compose.yml
Этот шаг и последующие шаги должны быть выполнены на другом сервере!
Убедитесь, что Docker установлен на сервере, на котором вы будете устанавливать страницу подписки.
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano docker-compose.yml
services:
remnawave-subscription-page:
image: remnawave/subscription-page:latest
container_name: remnawave-subscription-page
hostname: remnawave-subscription-page
restart: always
env_file:
- .env
ports:
- '127.0.0.1:3010:3010'
networks:
- remnawave-network
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: false
Теперь создайте файл .env:
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano .env
Создайте API-токен в панели управления Remnawave. Настройки Remnawave → API-токены.
Вставьте следующее содержимое в файл .env:
APP_PORT=3010
REMNAWAVE_PANEL_URL=https://remnawave.panel.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE
Замените remnawave.panel.com на доменное имя вашей панели.
Полный справочник файла .env
APP_PORT=3010
### URL панели Remnawave, может быть http://remnawave:3000 или https://panel.example.com
REMNAWAVE_PANEL_URL=https://panel.example.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE
# Обслуживание по пользовательскому корневому пути, например: CUSTOM_SUB_PREFIX=sub
# Не ставьте / в начале/конце
CUSTOM_SUB_PREFIX=
# Поддержка ссылок Marzban
MARZBAN_LEGACY_LINK_ENABLED=false
MARZBAN_LEGACY_SECRET_KEY=
# Если вы используете дополнение "Caddy with security", здесь можно указать X-Api-Key.
CADDY_AUTH_API_TOKEN=
# Если вы используете Cloudflare Zero Trust для защиты панели, используйте эти переменные для обхода безопасности.
CLOUDFLARE_ZERO_TRUST_CLIENT_ID=
CLOUDFLARE_ZERO_TRUST_CLIENT_SECRET=
Шаг 3 - Запуск контейнера
docker compose up -d && docker compose logs -f
Шаг 4 - Настройка обратного прокси
Remnawave и его компоненты не поддерживают обслуживание по подпути. (например, location /subscription {)
Он должен обслуживаться по корневому пути домена или поддомена.
Для пользовательского пути можно использовать параметр CUSTOM_SUB_PREFIX.
Caddy
Конфигурация Caddy
Создайте файл Caddyfile в директории /opt/remnawave/caddy.
mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy && nano Caddyfile
Вставьте следующую конфигурацию.
Пожалуйста, замените REPLACE_WITH_YOUR_DOMAIN на доменное имя вашей страницы подписки.
Проверьте конфигурацию ниже, обратите внимание на строки, выделенные красным.
https://SUBSCRIPTION_PAGE_DOMAIN {
reverse_proxy * http://remnawave-subscription-page:3010
}
:443 {
tls internal
respond 204
}
Пожалуйста, замените SUBSCRIPTION_PAGE_DOMAIN на ваше доменное имя.
Проверьте конфигурацию ниже, обратите внимание на строки, выделенные зелёным.
Создание docker-compose.yml
Создайте файл docker-compose.yml в директории /opt/remnawave/caddy.
cd /opt/remnawave/caddy && nano docker-compose.yml
Вставьте следующую конфигурацию.
services:
caddy:
image: caddy:2.9
container_name: 'caddy'
hostname: caddy
restart: always
ports:
- '0.0.0.0:443:443'
- '0.0.0.0:80:80'
networks:
- remnawave-network
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy-ssl-data:/data
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true
volumes:
caddy-ssl-data:
driver: local
external: false
name: caddy-ssl-data
Запуск контейнера
docker compose up -d && docker compose logs -f -t
Шаг 5 - Использование
Страница подписки будет доступна по адресу https://subdomain.panel.com/<shortUuid>.
Настройка страницы подписки (необязательно)
Вы можете настроить страницу подписки в Subpage Builder в панели управления Remnawave. Это позволяет:
- Добавить поддержку различных VPN-приложений
- Настроить текст и инструкции на нескольких языках
- Добавить собственный брендинг (логотип, название компании, ссылки на поддержку)
- Настроить, какие приложения отображаются как «рекомендуемые»