Caddy avec chemin personnalisé
Caddy est un serveur web puissant et flexible qui peut être utilisé pour sécuriser votre panel Remnawave.
Installation
Tout d'abord, créez un répertoire pour Caddy.
mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy
Créez ensuite un fichier docker-compose.yml.
touch docker-compose.yml && nano docker-compose.yml
Et ajoutez le contenu suivant au fichier :
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
Configuration des variables .env
Vous devez définir un nom de domaine pour votre panel Remnawave. Caddy émettra automatiquement un certificat pour celui-ci.
REMNAWAVE_PANEL_DOMAIN=panel.domain.com
Chemin de connexion personnalisé. Ce chemin sera utilisé UNIQUEMENT pour la page de connexion. Il n'y aura pas de redirection si vous ouvrez le tableau de bord sans vous être préalablement authentifié. Seules les personnes connaissant ce chemin pourront accéder au panel.
REMNAWAVE_CUSTOM_LOGIN_ROUTE=supersecretroute
Identifiants administrateur. Assurez-vous d'utiliser un mot de passe fort.
AUTHP_ADMIN_USER=admin
AUTHP_ADMIN_EMAIL=[email protected]
AUTHP_ADMIN_SECRET=strong_password
Durée de vie du token.
AUTH_TOKEN_LIFETIME=3600
Caddyfile
Plongeons dans le Caddyfile.
Tout d'abord, vous devez sélectionner l'une de nos configurations prédéfinies.
Nous recommandons d'utiliser la configuration de sécurité complète avec MFA pour les environnements de production où vous émettrez des clés API.
Vous ne pourrez vous connecter que via ce chemin (REMNAWAVE_CUSTOM_LOGIN_ROUTE).
Configuration de sécurité complète avec MFA
- Toutes les routes sont protégées par authentification. (Frontend, Backend)
- Tous les endpoints API sont protégés, y compris les endpoints /api/sub/*.
- La connexion nécessite MFA avec des codes OTP.
- Des clés API spéciales peuvent être émises pour les endpoints /api/*.
- Protection complète du domaine.
Exécutez la commande ci-dessous pour télécharger le 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
Routes API sans authentification (api/*)
- Les routes sont protégées par authentification. (Frontend)
- La connexion nécessite MFA avec des codes OTP. (Frontend)
- Tous les endpoints API ne sont pas protégés ! (/api/* est public)
Cette configuration expose les endpoints /api/* à Internet public.
Tous les endpoints ne nécessiteront pas d'authentification, mais utiliseront toujours les fonctionnalités de sécurité de Remnawave.
Nous recommandons d'utiliser la configuration de sécurité complète avec MFA pour les environnements de production où vous émettrez des clés API.
Exécutez la commande ci-dessous pour télécharger le 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/* sans authentification
- Les routes sont protégées par authentification. (Frontend)
- La connexion nécessite MFA avec des codes OTP. (Frontend)
- Seuls les endpoints
/api/sub/*sont publics, les autres sont protégés.
Cette configuration expose les endpoints /api/sub/* à Internet public.
Nous recommandons d'utiliser la configuration de sécurité complète avec MFA pour les environnements de production où vous émettrez des clés API et utiliserez @remnawave/subscription-page pour la page d'abonnement publique.
Exécutez la commande ci-dessous pour télécharger le 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
Démarrage du conteneur
Après avoir sélectionné l'une des configurations ci-dessus, vous pouvez démarrer le conteneur avec la commande suivante.
docker compose up -d && docker compose logs -f
Accès au panel
Une fois le conteneur en cours d'exécution, vous pouvez accéder au panel à l'adresse https://panel.domain.com/REMNAWAVE_CUSTOM_LOGIN_ROUTE.
Au premier démarrage, il vous sera demandé d'ajouter une méthode MFA.
Nous recommandons d'utiliser Google Authenticator.
Désactiver MFA
Si vous souhaitez désactiver complètement MFA, vous pouvez le faire en modifiant le Caddyfile.
Ouvrez le Caddyfile et modifiez la ligne suivante :
cd /opt/remnawave/caddy && nano Caddyfile
Trouvez les lignes suivantes et supprimez la ligne require mfa.
transform user {
match origin local
action add role authp/admin
require mfa
}
Après cela, vous pouvez redémarrer le conteneur avec la commande suivante.
docker compose down && docker compose up -d && docker compose logs -f
Accès à la page du Portail d'Authentification
Vous pouvez accéder à la page du Portail d'Authentification à l'adresse https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth.

Ici, vous pouvez accéder rapidement au tableau de bord Remnawave ou gérer certains paramètres du Portail d'Authentification.
Dans la section MFA, vous pouvez supprimer ou ajouter de nouvelles méthodes MFA.
Émission de clés API
Vous pouvez accéder à la page du Portail d'Authentification à l'adresse https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth.
Sur la page du Portail d'Authentification, vous pouvez émettre des clés API. Cliquez sur l'onglet API-keys.
Après avoir émis une clé API, vous pouvez l'utiliser dans l'en-tête X-Api-Key de vos requêtes vers l'API.
Exemple : X-Api-Key: YxOovHLnpkcmSig5082egcHnyTk8SK4dNGAFHgZ2LKZezgj5oUj2FA2IR2sMwbALnP9YNpzZ
