Zum Hauptinhalt springen

Caddy mit minimalem Setup

Caddy ist ein leistungsstarker und flexibler Webserver, der zur Absicherung Ihres Remnawave-Panels verwendet werden kann.

Installation

Erstellen Sie zunächst ein Verzeichnis für Caddy.

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

Und erstellen Sie eine docker-compose.yml-Datei.

touch docker-compose.yml && nano docker-compose.yml

Und fügen Sie folgenden Inhalt zur Datei hinzu:

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

.env-Variablen konfigurieren

Sie müssen einen Domainnamen für Ihr Remnawave-Panel festlegen. Caddy stellt automatisch ein Zertifikat für diese Domain aus.

REMNAWAVE_PANEL_DOMAIN=panel.domain.com

Admin-Anmeldedaten. Stellen Sie sicher, dass Sie ein starkes Passwort verwenden.

AUTHP_ADMIN_USER=admin
AUTHP_ADMIN_EMAIL=[email protected]
AUTHP_ADMIN_SECRET=strong_password

Token-Lebensdauer.

AUTH_TOKEN_LIFETIME=3600

Caddyfile

Tauchen wir tiefer in das Caddyfile ein.

Zunächst müssen Sie eines unserer vordefinierten Setups auswählen.

Vollständiges Sicherheits-Setup mit MFA

  • Alle Routen sind durch Authentifizierung geschützt. (Frontend, Backend)
  • Alle API-Endpunkte sind geschützt, einschließlich /api/sub/*-Endpunkte.
  • Login erfordert MFA mit OTP-Codes.
  • Spezielle API-Schlüssel können für /api/*-Endpunkte ausgestellt werden.
  • Vollständiger Domain-Schutz.

Führen Sie den folgenden Befehl aus, um das Caddyfile herunterzuladen.

curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/minimal-security-setup-with-mfa/Caddyfile

API-Routen ohne Authentifizierung (api/*)

  • Routen sind durch Authentifizierung geschützt. (Frontend)
  • Login erfordert MFA mit OTP-Codes. (Frontend)
  • Alle API-Endpunkte sind nicht geschützt! (/api/* ist öffentlich)
gefahr

Dieses Setup legt die /api/*-Endpunkte dem öffentlichen Internet offen.

Alle Endpunkte erfordern keine Authentifizierung, verwenden aber weiterhin die Remnawave-Sicherheitsfunktionen.

Wir empfehlen, das vollständige Sicherheits-Setup mit MFA für Produktionsumgebungen zu verwenden, in denen Sie API-Schlüssel ausstellen werden.

Führen Sie den folgenden Befehl aus, um das Caddyfile herunterzuladen.

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

/api/sub/*-Endpunkte ohne Authentifizierung

  • Routen sind durch Authentifizierung geschützt. (Frontend)
  • Login erfordert MFA mit OTP-Codes. (Frontend)
  • Nur /api/sub/*-Endpunkte sind öffentlich, andere Endpunkte sind geschützt.
gefahr

Dieses Setup legt die /api/sub/*-Endpunkte dem öffentlichen Internet offen.

Wir empfehlen, das vollständige Sicherheits-Setup mit MFA für Produktionsumgebungen zu verwenden, in denen Sie API-Schlüssel ausstellen und @remnawave/subscription-page für öffentliche Abonnementseiten verwenden werden.

Führen Sie den folgenden Befehl aus, um das Caddyfile herunterzuladen.

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

Container starten

Nachdem Sie eines der obigen Setups ausgewählt haben, können Sie den Container mit folgendem Befehl starten.

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

Auf das Panel zugreifen

Nachdem der Container läuft, können Sie das Panel unter https://panel.domain.com aufrufen.

Danach werden Sie zur Login-Seite von Caddy Auth weitergeleitet.

Beim ersten Start werden Sie aufgefordert, eine MFA-Methode zu erstellen.

Wir empfehlen dafür die Verwendung von Google Authenticator.

MFA deaktivieren

Wenn Sie MFA vollständig deaktivieren möchten, können Sie dies durch Bearbeiten des Caddyfile tun.

Öffnen Sie das Caddyfile und ändern Sie die folgende Zeile:

cd /opt/remnawave/caddy && nano Caddyfile

Suchen Sie die folgenden Zeilen und entfernen Sie die Zeile require mfa.

Caddyfile
transform user {
match origin local
action add role authp/admin
require mfa
}

Danach können Sie den Container mit folgendem Befehl neu starten.

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

Auf die Auth-Portal-Seite zugreifen

info

Sie können die Auth-Portal-Seite unter https://<your-domain>/r aufrufen.

Auth Portal page

Hier können Sie schnell zum Remnawave-Dashboard wechseln oder einige Auth-Portal-Einstellungen verwalten.

Im MFA-Bereich können Sie MFA-Geräte löschen oder neue hinzufügen.

API-Schlüssel ausstellen

info

Sie können die Auth-Portal-Seite unter https://<your-domain>/r aufrufen.

Auf der Auth-Portal-Seite können Sie API-Schlüssel ausstellen. Klicken Sie auf den Tab API-keys.

info

Nachdem Sie einen API-Schlüssel ausgestellt haben, können Sie ihn im X-Api-Key-Header Ihrer API-Anfragen verwenden.

Beispiel: X-Api-Key: YxOovHLnpkcmSig5082egcHnyTk8SK4dNGAFHgZ2LKZezgj5oUj2FA2IR2sMwbALnP9YNpzZ

API-keys