ExoSeal selbst hosten
ExoSeal läuft mit einer docker-compose-Datei auf deinem eigenen Server und mit deinem eigenen Login-Anbieter. Dann liegt alles bei dir.
BetriebVoraussetzungen
Du brauchst einen Server mit Docker und Docker Compose, eine Domain mit HTTPS über einen Reverse-Proxy wie Caddy oder nginx und einen OIDC-Anmeldeanbieter mit PKCE (S256).
Konfiguration anlegen
Lade docker-compose.yml und .env.example aus dem Repository in einen leeren Ordner und kopiere .env.example nach .env. Setze ein eigenes Datenbankpasswort und PUBLIC_URL auf deine Adresse, zum Beispiel https://seal.example.com. Die Datei .env gehört nie ins Repository.
Anmeldung einrichten
Trage OIDC_METADATA_ADDRESS, OIDC_CLIENT_ID und OIDC_CLIENT_SECRET deines Anbieters ein. Beim Anbieter hinterlegst du die Redirect-URI PUBLIC_URL/api/v1/auth/callback.
Wer senden darf
Setze ALLOWED_EMAIL_DOMAINS und/oder ALLOWED_EMAILS. Nur diese Adressen können Links erstellen. Sobald die Anmeldung aktiv ist, braucht es mindestens einen Eintrag.
Reverse-Proxy davorsetzen
Der Proxy leitet auf das Frontend (Port 3000) weiter und kümmert sich um TLS. Setze TRUSTED_PROXY_HOPS auf 1, wenn genau ein Proxy davorsteht, damit die Begrenzung pro Besucher richtig zählt. Kommt die echte IP stattdessen in einem eigenen Header an (Cloudflare: CF-Connecting-IP), setze CLIENT_IP_HEADER auf dessen Namen, aber nur, wenn der Server ausschließlich über diesen Proxy erreichbar ist.
Starten
Starte alles mit docker compose pull und danach docker compose up -d. Die fertigen Images ziehst du dabei aus der GitHub Container Registry, gebaut wird nichts. Der Gesundheitscheck des Frontends meldet, wenn alles läuft. Danach rufst du deine Adresse auf und meldest dich an.
Optional: Benachrichtigungen, Impressum, Meldungen
Mit SMTP_* oder WEBHOOK_URL bekommst du Bescheid, wenn eine Anfrage beantwortet wurde. Die Angaben IMPRINT_* (Name, Anschrift, E-Mail, Vertreter, Telefon, Register, USt-ID) füllen Impressum und Nutzungsbedingungen, PRIVACY_SERVICES nennt vorgeschaltete Dienste wie Cloudflare in der Datenschutzerklärung, ABUSE_EMAIL zeigt eine Kontaktadresse für Missbrauchsmeldungen.
Gut zu wissen
- Sichere die Datenbank ohne die Tabelle secrets. Geheimnisse sind flüchtig, ein Backup würde bereits geöffnete wieder zurückbringen.
- Schalte keine Zugriffsprotokolle ein, die Pfade enthalten: In der Adresse steht die ID des Geheimnisses.
- Die ausführlichen Betriebshinweise stehen im Ordner docs des Projekts.
Häufige Fragen.
01Brauche ich einen eigenen Login-Anbieter?
Ja. ExoSeal meldet über einen OpenID-Connect-Anbieter an. Welche E-Mail-Adressen oder Domains sich anmelden dürfen, legst du über eine Allowlist fest.
02Welche Lizenz gilt?
ExoSeal steht unter der AGPL-3.0. Du darfst es selbst betreiben und anpassen. Änderungen an einer öffentlich betriebenen Instanz musst du ebenfalls offenlegen.
03Worauf muss ich beim Reverse-Proxy achten?
Die Zahl der Proxys vor ExoSeal muss zur Einstellung TRUSTED_PROXY_HOPS passen. Sonst teilen sich alle Besucher dasselbe Limit gegen Missbrauch.
04Brauche ich einen Mailserver?
Nein. Benachrichtigungen per Mail oder Webhook sind optional.
Diese Anleitung beschreibt die Standardeinstellungen von ExoSeal. Bei selbst betriebenen Instanzen können einzelne Werte abweichen.