Pular para o conteúdo principal

Servidor separado

A instalação em servidor separado significa que você instalará a página de assinatura em um servidor diferente do Remnawave Panel.

Etapa 1 - Preparar o arquivo .env

aviso

Faça essas alterações no servidor onde o Remnawave Panel está instalado.

Edite o arquivo /opt/remnawave/.env e altere SUB_PUBLIC_DOMAIN para o nome de domínio da sua página de assinatura.

Editando o arquivo .env
cd /opt/remnawave && nano .env

Altere SUB_PUBLIC_DOMAIN para o nome de domínio da sua página de assinatura. O nome de domínio deve ser sem http ou https.

Conteúdo do arquivo .env
SUB_PUBLIC_DOMAIN=subscription.domain.com

Não se esqueça de reiniciar o contêiner do Remnawave Panel:

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

Etapa 2 - Criar o arquivo docker-compose.yml

aviso

Esta etapa e as seguintes devem ser realizadas em outro servidor!

aviso

Certifique-se de que o Docker está instalado no servidor onde você instalará a página de assinatura.

Criando o arquivo docker-compose.yml
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano docker-compose.yml
Conteúdo do arquivo 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

Agora crie o arquivo .env:

Criando o arquivo .env
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano .env

Crie um token de API no painel do Remnawave. Configurações do Remnawave → Tokens de API.

Cole o seguinte conteúdo no arquivo .env:

APP_PORT=3010
REMNAWAVE_PANEL_URL=https://remnawave.panel.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE

Substitua remnawave.panel.com pelo nome de domínio do seu painel.

Referência completa do arquivo .env
Arquivo .env
APP_PORT=3010

### URL do painel Remnawave, pode ser http://remnawave:3000 ou https://panel.example.com
REMNAWAVE_PANEL_URL=https://panel.example.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE

# Servir em caminho raiz personalizado, por exemplo: CUSTOM_SUB_PREFIX=sub
# Não coloque / no início/final
CUSTOM_SUB_PREFIX=

# Suporte a links Marzban
MARZBAN_LEGACY_LINK_ENABLED=false
MARZBAN_LEGACY_SECRET_KEY=


# Se você usa o addon "Caddy with security", pode colocar aqui o X-Api-Key.
CADDY_AUTH_API_TOKEN=

# Se você usa Cloudflare Zero Trust para proteger seu painel, use estas variáveis para contornar a segurança.
CLOUDFLARE_ZERO_TRUST_CLIENT_ID=
CLOUDFLARE_ZERO_TRUST_CLIENT_SECRET=

Etapa 3 - Iniciar o contêiner

Iniciando o contêiner
docker compose up -d && docker compose logs -f

Etapa 4 - Configurar o proxy reverso

perigo

Remnawave e seus componentes não suportam ser servidos em um sub-caminho. (p.ex. location /subscription {)

Deve ser servido no caminho raiz de um domínio ou subdomínio.

Para caminho personalizado, você pode usar o parâmetro CUSTOM_SUB_PREFIX.

Caddy

Configuração do Caddy

Crie um arquivo chamado Caddyfile no diretório /opt/remnawave/caddy.

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

Cole a seguinte configuração.

aviso

Por favor, substitua REPLACE_WITH_YOUR_DOMAIN pelo nome de domínio da sua página de assinatura.

Revise a configuração abaixo, procure as linhas destacadas em vermelho.

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

Por favor, substitua SUBSCRIPTION_PAGE_DOMAIN pelo seu nome de domínio.

Revise a configuração abaixo, procure as linhas destacadas em verde.

Criar docker-compose.yml

Crie um arquivo docker-compose.yml no diretório /opt/remnawave/caddy.

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

Cole a seguinte configuração.

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

Iniciar o contêiner

docker compose up -d && docker compose logs -f -t

Etapa 5 - Uso

A página de assinatura estará disponível em https://subdomain.panel.com/<shortUuid>.

Configurando a página de assinatura (opcional)

Você pode personalizar a página de assinatura no Subpage Builder no painel do Remnawave. Isso permite:

  • Adicionar suporte para diferentes aplicativos VPN
  • Personalizar texto e instruções em vários idiomas
  • Adicionar sua própria marca (logotipo, nome da empresa, links de suporte)
  • Configurar quais aplicativos aparecem como "em destaque"