Zurück zur Übersicht

Exostruction3 Min. Lesezeit

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.

Betrieb

Voraussetzungen

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.

Entwickelt von

ExostructionEntwickler von ExoSealExoSeal wird von Exostruction entwickelt, einer kleinen Softwarefirma aus Bayern. Der Quellcode ist offen (AGPL-3.0).

Diese Anleitung beschreibt die Standardeinstellungen von ExoSeal. Bei selbst betriebenen Instanzen können einzelne Werte abweichen.