跳到主要内容

独立服务器安装

独立服务器安装意味着您将在与 Remnawave 面板不同的服务器上安装订阅页面。

步骤 1 - 准备 .env 文件

注意

请在安装了 Remnawave 面板的服务器上进行此更改。

编辑 /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 面板容器:

cd /opt/remnawave && docker compose down remnawave && docker compose up -d && docker compose logs -f

步骤 2 - 创建 docker-compose.yml 文件

注意

此步骤及后续步骤应在另一台服务器上执行!

注意

确保在将要安装订阅页面的服务器上已安装 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

在 Remnawave 控制台中创建 API 令牌。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

### Remnawave 面板 URL,可以是 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」插件,可以在此处放置 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 配置

/opt/remnawave/caddy 目录中创建名为 Caddyfile 的文件。

mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy && nano Caddyfile

粘贴以下配置。

注意

请将 REPLACE_WITH_YOUR_DOMAIN 替换为您的订阅页面域名。

查看以下配置,注意红色高亮行。

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

请将 SUBSCRIPTION_PAGE_DOMAIN 替换为您的域名。

查看以下配置,注意绿色高亮行。

创建 docker-compose.yml

/opt/remnawave/caddy 目录中创建 docker-compose.yml 文件。

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> 处可用。

配置订阅页面(可选)

您可以在 Remnawave 控制台的子页面构建工具中自定义订阅页面。这允许您:

  • 添加对不同 VPN 应用程序的支持
  • 以多种语言自定义文字和说明
  • 添加您自己的品牌(标志、公司名称、支持链接)
  • 设置哪些应用程序显示为「精选」