Caddy com configuração mínima
Caddy é um servidor web poderoso e flexível que pode ser usado para proteger seu painel Remnawave.
Instalação
Primeiramente, crie um diretório para o Caddy.
mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy
E crie um arquivo docker-compose.yml.
touch docker-compose.yml && nano docker-compose.yml
E adicione o seguinte conteúdo ao arquivo:
services:
remnawave-caddy:
image: remnawave/caddy-with-auth:latest
container_name: 'remnawave-caddy'
hostname: remnawave-caddy
restart: always
environment:
- AUTH_TOKEN_LIFETIME=3600
- REMNAWAVE_PANEL_DOMAIN=PANEL_DOMAIN
- AUTHP_ADMIN_USER=LOGIN_USERNAME
- AUTHP_ADMIN_EMAIL=LOGIN_EMAIL
- AUTHP_ADMIN_SECRET=LOGIN_PASSWORD
ports:
- '0.0.0.0:443:443'
networks:
- remnawave-network
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- remnawave-caddy-ssl-data:/data
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true
volumes:
remnawave-caddy-ssl-data:
driver: local
external: false
name: remnawave-caddy-ssl-data
Configurando variáveis .env
Você precisa definir um nome de domínio para seu painel Remnawave. O Caddy emitirá automaticamente um certificado para este domínio.
REMNAWAVE_PANEL_DOMAIN=panel.domain.com
Credenciais do administrador. Certifique-se de usar uma senha forte.
AUTHP_ADMIN_USER=admin
AUTHP_ADMIN_EMAIL=[email protected]
AUTHP_ADMIN_SECRET=strong_password
Tempo de vida do token.
AUTH_TOKEN_LIFETIME=3600
Caddyfile
Vamos nos aprofundar no Caddyfile.
Primeiro, você precisa selecionar uma de nossas configurações predefinidas.
Configuração de segurança completa com MFA
- Todas as rotas são protegidas por autenticação. (Frontend, Backend)
- Todos os endpoints de API são protegidos, incluindo endpoints /api/sub/*.
- O login requer MFA com códigos OTP.
- Chaves de API especiais podem ser emitidas para endpoints /api/*.
- Proteção completa do domínio.
Execute o comando abaixo para baixar o Caddyfile.
curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/minimal-security-setup-with-mfa/Caddyfile
Rotas de API sem autenticação (api/*)
- Rotas são protegidas por autenticação. (Frontend)
- O login requer MFA com códigos OTP. (Frontend)
- Todos os endpoints de API não são protegidos! (/api/* é público)
Esta configuração expõe os endpoints /api/* à Internet pública.
Todos os endpoints não exigirão autenticação, mas ainda usarão os recursos de segurança do Remnawave.
Recomendamos usar a configuração de segurança completa com MFA para ambientes de produção onde você emitirá chaves de API.
Execute o comando abaixo para baixar o Caddyfile.
curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/minimal-security-setup-with-mfa-with-api-without-auth/Caddyfile
Endpoints /api/sub/* sem autenticação
- Rotas são protegidas por autenticação. (Frontend)
- O login requer MFA com códigos OTP. (Frontend)
- Apenas endpoints
/api/sub/*são públicos, outros endpoints são protegidos.
Esta configuração expõe os endpoints /api/sub/* à Internet pública.
Recomendamos usar a configuração de segurança completa com MFA para ambientes de produção onde você emitirá chaves de API e usará @remnawave/subscription-page para página de assinatura pública.
Execute o comando abaixo para baixar o Caddyfile.
curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/minimal-security-setup-with-mfa-with-api-without-auth/Caddyfile
Executando o contêiner
Após selecionar uma das configurações acima, você pode iniciar o contêiner com o seguinte comando.
docker compose up -d && docker compose logs -f
Acessando o painel
Após o contêiner estar em execução, você pode acessar o painel em https://panel.domain.com.
Depois disso, você será redirecionado para a página de login do Caddy Auth.
No primeiro início, você será solicitado a criar um método MFA.
Recomendamos usar o Google Authenticator para isso.
Desativar MFA
Se você quiser desativar completamente o MFA, pode fazer isso editando o Caddyfile.
Abra o Caddyfile e altere a seguinte linha:
cd /opt/remnawave/caddy && nano Caddyfile
Encontre as seguintes linhas e remova a linha require mfa.
transform user {
match origin local
action add role authp/admin
require mfa
}
Depois disso, você pode reiniciar o contêiner com o seguinte comando.
docker compose down && docker compose up -d && docker compose logs -f
Acessando a página do Portal de Autenticação
Você pode acessar a página do Portal de Autenticação em https://<your-domain>/r.

Aqui você pode ir rapidamente ao painel do Remnawave ou gerenciar algumas configurações do Portal de Autenticação.
Na seção MFA, você pode excluir ou adicionar novos dispositivos MFA.
Emitindo chaves de API
Você pode acessar a página do Portal de Autenticação em https://<your-domain>/r.
Na página do Portal de Autenticação, você pode emitir chaves de API. Clique na aba API-keys.
Depois de emitir uma chave de API, você pode usá-la no cabeçalho X-Api-Key de suas solicitações à API.
Exemplo: X-Api-Key: YxOovHLnpkcmSig5082egcHnyTk8SK4dNGAFHgZ2LKZezgj5oUj2FA2IR2sMwbALnP9YNpzZ
