Перейти к основному содержимому

Отдельный сервер

Установка на отдельный сервер означает, что вы установите страницу подписки на другой сервер, отличный от сервера Remnawave Panel.

Шаг 1 - Подготовка файла .env

warning

Выполните эти изменения на сервере, где установлен Remnawave Panel.

Отредактируйте файл /opt/remnawave/.env и измените SUB_PUBLIC_DOMAIN на доменное имя вашей страницы подписки.

Редактирование файла .env
cd /opt/remnawave && nano .env

Измените SUB_PUBLIC_DOMAIN на доменное имя вашей страницы подписки. Доменное имя должно быть без http или https.

Содержимое файла .env
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

warning

Этот шаг и последующие шаги должны быть выполнены на другом сервере!

warning

Убедитесь, что Docker установлен на сервере, на котором вы будете устанавливать страницу подписки.

Создание файла docker-compose.yml
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano docker-compose.yml
Содержимое файла 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:

Создание файла .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
Файл .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

Вставьте следующую конфигурацию.

warning

Пожалуйста, замените REPLACE_WITH_YOUR_DOMAIN на доменное имя вашей страницы подписки.

Проверьте конфигурацию ниже, обратите внимание на строки, выделенные красным.

Caddyfile
https://SUBSCRIPTION_PAGE_DOMAIN {
reverse_proxy * http://remnawave-subscription-page:3010
}
:443 {
tls internal
respond 204
}
warning

Пожалуйста, замените SUBSCRIPTION_PAGE_DOMAIN на ваше доменное имя.

Проверьте конфигурацию ниже, обратите внимание на строки, выделенные зелёным.

Создание docker-compose.yml

Создайте файл docker-compose.yml в директории /opt/remnawave/caddy.

cd /opt/remnawave/caddy && nano docker-compose.yml

Вставьте следующую конфигурацию.

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-приложений
  • Настроить текст и инструкции на нескольких языках
  • Добавить собственный брендинг (логотип, название компании, ссылки на поддержку)
  • Настроить, какие приложения отображаются как «рекомендуемые»