Saltar al contenido principal

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:

docker-compose.yml
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.

info

Recomendamos usar la configuración de seguridad completa con MFA para entornos de producción donde emitirá claves API.

peligro

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)
peligro

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.
peligro

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.

Caddyfile
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

info

Puede acceder a la página del Portal de Autenticación en https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth.

Auth Portal page

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

info

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.

info

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

API-keys