Caddy con ruta personalizada
Caddy es un servidor web potente y flexible que se puede usar para proteger su panel de Remnawave.
Instalación
En primer lugar, cree un directorio para Caddy.
mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy
Luego cree un archivo docker-compose.yml.
touch docker-compose.yml && nano docker-compose.yml
Y agregue el siguiente contenido al archivo:
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
- REMNAWAVE_CUSTOM_LOGIN_ROUTE=supersecretroute
- 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
Configurar variables .env
Necesita establecer un nombre de dominio para su panel de Remnawave. Caddy emitirá automáticamente un certificado para él.
REMNAWAVE_PANEL_DOMAIN=panel.domain.com
Ruta de inicio de sesión personalizada. Esta ruta se usará SOLO para la página de inicio de sesión. No habrá redirección si abre el panel sin haberse autenticado previamente. Solo las personas que conozcan esta ruta podrán acceder al panel.
REMNAWAVE_CUSTOM_LOGIN_ROUTE=supersecretroute
Credenciales de administrador. Asegúrese de usar una contraseña segura.
AUTHP_ADMIN_USER=admin
AUTHP_ADMIN_EMAIL=[email protected]
AUTHP_ADMIN_SECRET=strong_password
Tiempo de vida del token.
AUTH_TOKEN_LIFETIME=3600
Caddyfile
Profundicemos en el Caddyfile.
Primero, debe seleccionar una de nuestras configuraciones predefinidas.
Recomendamos usar la configuración de seguridad completa con MFA para entornos de producción donde emitirá claves API.
Solo podrá iniciar sesión a través de esta ruta (REMNAWAVE_CUSTOM_LOGIN_ROUTE).
Configuración de seguridad completa con MFA
- Todas las rutas están protegidas por autenticación. (Frontend, Backend)
- Todos los endpoints de API están protegidos, incluidos los endpoints /api/sub/*.
- El inicio de sesión requiere MFA con códigos OTP.
- Se pueden emitir claves API especiales para los endpoints /api/*.
- Protección completa del dominio.
Ejecute el comando a continuación para descargar el Caddyfile.
curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-and-protected-api-route/Caddyfile
Rutas de API sin autenticación (api/*)
- Las rutas están protegidas por autenticación. (Frontend)
- El inicio de sesión requiere MFA con códigos OTP. (Frontend)
- ¡Todos los endpoints de API no están protegidos! (/api/* es público)
Esta configuración expone los endpoints /api/* a Internet público.
Todos los endpoints no requerirán autenticación, pero aún usarán las funciones de seguridad de Remnawave.
Recomendamos usar la configuración de seguridad completa con MFA para entornos de producción donde emitirá claves API.
Ejecute el comando a continuación para descargar el Caddyfile.
curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-with-api-without-auth/Caddyfile
Endpoints /api/sub/* sin autenticación
- Las rutas están protegidas por autenticación. (Frontend)
- El inicio de sesión requiere MFA con códigos OTP. (Frontend)
- Solo los endpoints
/api/sub/*son públicos, los demás están protegidos.
Esta configuración expone los endpoints /api/sub/* a Internet público.
Recomendamos usar la configuración de seguridad completa con MFA para entornos de producción donde emitirá claves API y usará @remnawave/subscription-page para la página de suscripción pública.
Ejecute el comando a continuación para descargar el Caddyfile.
curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-with-opened-api-sub/Caddyfile
Ejecutar el contenedor
Después de seleccionar una de las configuraciones anteriores, puede iniciar el contenedor con el siguiente comando.
docker compose up -d && docker compose logs -f
Acceder al panel
Después de que el contenedor esté en ejecución, puede acceder al panel en https://panel.domain.com/REMNAWAVE_CUSTOM_LOGIN_ROUTE.
En el primer inicio, se le pedirá que agregue un método MFA.
Recomendamos usar Google Authenticator.
Deshabilitar MFA
Si desea deshabilitar completamente MFA, puede hacerlo editando el Caddyfile.
Abra el Caddyfile y cambie la siguiente línea:
cd /opt/remnawave/caddy && nano Caddyfile
Encuentre las siguientes líneas y elimine la línea require mfa.
transform user {
match origin local
action add role authp/admin
require mfa
}
Después de eso, puede reiniciar el contenedor con el siguiente comando.
docker compose down && docker compose up -d && docker compose logs -f
Acceder a la página del Portal de Autenticación
Puede acceder a la página del Portal de Autenticación en https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth.

Aquí puede ir rápidamente al panel de Remnawave o administrar algunas configuraciones del Portal de Autenticación.
En la sección MFA, puede eliminar o agregar nuevos métodos MFA.
Emitir claves API
Puede acceder a la página del Portal de Autenticación en https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth.
En la página del Portal de Autenticación, puede emitir claves API. Haga clic en la pestaña API-keys.
Después de emitir una clave API, puede usarla en el encabezado X-Api-Key de sus solicitudes a la API.
Ejemplo: X-Api-Key: YxOovHLnpkcmSig5082egcHnyTk8SK4dNGAFHgZ2LKZezgj5oUj2FA2IR2sMwbALnP9YNpzZ
