Skip to content
Zurück zur Startseite

§ DOCUMENTATION

Self-Hosted-Deployment

Betreiben Sie die vollständige Execlave-Governance-Plattform auf Ihrer eigenen Infrastruktur mit den veröffentlichten Docker-Images und einem Lizenzschlüssel. Ihre Daten verlassen niemals Ihr Netzwerk — das Einzige, was die Grenze überschreitet, ist ein Lizenz-Heartbeat (ein Fingerabdruck und ein Zeitstempel, keine Kundendaten).

§ 01

Datenschutz: standardmäßig keine externen KI-API-Aufrufe

Das standardmäßige Self-Hosted-Deployment sendet null Prompts, Traces oder Modelleingaben an einen externen KI-Anbieter. Semantische Klassifizierung und Richtliniengenerierung laufen gegen ein lokales LLM (Ollama oder einen beliebigen OpenAI-kompatiblen Endpunkt), konfiguriert über LOCAL_LLM_URL. Ist dieser Endpunkt nicht erreichbar, degradieren diese Funktionen sauber zu deterministischen Heuristiken — die Durchsetzung funktioniert weiter, Sie verlieren lediglich die beratenden Klassifizierungen.

Was das für Beschaffungsprüfungen bedeutet

  • Prompts und Traces verlassen niemals Ihre VPC.
  • In der Standardkonfiguration sind keine API-Schlüssel für Anthropic, OpenAI, Google oder einen anderen externen LLM-Anbieter erforderlich — oder werden akzeptiert.
  • Wenn Sie für einen bestimmten Workflow einen externen Anbieter einbinden möchten (z. B. ein gehostetes LLM für die Richtliniengenerierungs-UI), sind Sie für die Compliance-Implikationen der Datenübertragung verantwortlich.
  • Optionale Produkttelemetrie (PostHog, Accoil) ist standardmäßig aus. Lassen Sie die entsprechenden Umgebungsvariablen leer, um alle Analysen on-premise zu halten.
§ 02

Voraussetzungen

  • Linux-Host (beliebige Cloud oder Bare Metal) mit mindestens 4 CPU, 8 GB RAM
  • Docker 24+ und Docker Compose v2
  • Eine PostgreSQL-15-Instanz — in der Compose-Datei enthalten oder Ihre eigene mitbringen
  • Eine Redis-7-Instanz — in der Compose-Datei enthalten oder Ihre eigene mitbringen
  • Einen Lizenzschlüssel (anfordern unter /get-license)
  • Ausgehendes HTTPS zu license.execlave.com für den Heartbeat (Air-Gapped-Modus verfügbar — siehe §08)
§ 03

Schnellstart

curl -O https://get.execlave.com/docker-compose.ymlexport LICENSE_KEY=exe_lic_<your-key>docker compose up -dopen http://localhost:3000

Vier Befehle. Der Stack ist auf einem modernen Host in ~45 Sekunden hochgefahren. Melden Sie sich mit den im Startup-Output ausgegebenen Admin-Anmeldedaten an oder konfigurieren Sie Logto.

§ 04

Einen Lizenzschlüssel erhalten

Kostenlose und kostenpflichtige Self-Hosted-Lizenzen werden derzeit manuell ausgestellt. Fordern Sie eine unter /get-license an.

  • Free-Plan: Lizenz trifft innerhalb von 1 Geschäftsstunde ein
  • Kostenpflichtige Pläne: wir melden uns, um zuerst die Zahlung einzurichten
  • Enterprise: wir vereinbaren einen 30-minütigen Anruf

Der Lizenzschlüssel ist ein von unserem Lizenzserver signiertes JWT. Derselbe Schlüssel kann auf mehreren Instanzen bis zum Instanzlimit des Plans verwendet werden (jeder eindeutige Host-Fingerabdruck zählt als eine Instanz).

§ 05

Architektur

Alles läuft innerhalb Ihres Netzwerks. Der einzige ausgehende Verkehr ist der Lizenz-Heartbeat.

+-------------------------------------------------+|                Your infrastructure              ||                                                 ||   +---------+   +---------+   +-----------+    ||   | Next.js |-->| Express |-->| Postgres  |    ||   | (3000)  |   |  (4000) |   |  (5432)   |    ||   +---------+   +---------+   +-----------+    ||                      |                          ||                      v                          ||                 +---------+   +-----------+    ||                 | Worker  |-->|   Redis   |    ||                 | (BullMQ)|   |  (6379)   |    ||                 +---------+   +-----------+    ||                                                 ||   +-------------------+                         ||   |  Processing       |                         ||   |  (Python/FastAPI) |                         ||   +-------------------+                         |+-------------------------------------------------+         |         | outbound HTTPS only (heartbeat)         v+-----------------------------+| license.execlave.com        || (fingerprint + timestamp)   |+-----------------------------+
§ 06

Konfiguration

Erforderliche Umgebungsvariablen

VariableBeschreibung
LICENSE_KEYDer JWT-Lizenzschlüssel, den wir Ihnen per E-Mail senden
DEPLOYMENT_MODEAuf self-hosted setzen (steuert die Aktivierung des Lizenz-Clients)
DATABASE_URLPostgreSQL-Verbindungszeichenkette
REDIS_URLRedis-Verbindungszeichenkette
LOGTO_ENDPOINTLogto-Endpunkt (Backend)
LOGTO_APP_IDLogto-Dashboard-Client-App-ID (Backend)
LOGTO_APP_SECRETLogto-Dashboard-Client-App-Secret (Backend)
NEXT_PUBLIC_LOGTO_ENDPOINTLogto-Endpunkt (Frontend)
NEXT_PUBLIC_LOGTO_APP_IDLogto-Dashboard-Client-App-ID (Frontend)

Optionale Umgebungsvariablen

VariableStandardBeschreibung
LICENSE_SERVER_URLhttps://license.execlave.com/apiOverride für Air-Gapped-Proxys
LICENSE_CACHE_PATH~/.execlave/Wo der Lizenz-Client die validierte Lizenz zwischenspeichert
LICENSE_HEARTBEAT_INTERVAL_MS86400000Wie oft beim Lizenzserver eingecheckt wird (Standard 24 Std.)
LOCAL_LLM_URLnicht gesetztURL für den lokalen LLM-Dienst für semantische Klassifizierung + Richtliniengenerierung
STRIPE_SECRET_KEYnicht gesetztIm Self-Hosted-Modus nicht verwendet
SENTRY_DSNnicht gesetztOptionale Fehlerverfolgung
§ 07

Lizenzschlüssel: wie sie funktionieren

Der Lizenzschlüssel ist ein signiertes JWT. Wenn Ihre Instanz startet:

  1. Startup-Validierung — der Lizenz-Client verifiziert die JWT-Signatur gegen unseren öffentlichen Schlüssel (im Image gebündelt) und prüft Plan, Ablauf und Instanzlimits.
  2. Instanzregistrierung — der Host-Fingerabdruck Ihrer Instanz (Hash aus Hostname + MAC + Docker-Compose-Projektname) wird beim Lizenzserver registriert.
  3. Zwischengespeicherter Offline-Modus — die validierte Lizenz wird lokal zwischengespeichert, sodass die Instanz auch dann booten kann, wenn der Lizenzserver nicht erreichbar ist.
  4. Heartbeat — alle 24 Stunden sendet die Instanz einen Heartbeat, der ihren Fingerabdruck und einen Zeitstempel enthält. Es werden keine Kundendaten eingeschlossen.
  5. Kulanzzeitraum — ist der Lizenzserver 14 aufeinanderfolgende Tage nicht erreichbar, geht die Instanz in den Kulanzmodus über und protokolliert eine Warnung. Nach 21 Tagen wird die Durchsetzung bis zur erneuten Verbindung pausiert.
Was wir sehen: {fingerprint, timestamp, license_id, version}
Was wir nicht sehen: Prompts, Traces, Agenten, Richtlinien, Benutzer oder irgendwelche Kundendaten.
§ 08

Aktualisierung, Backups und Air-Gapped-Modus

Aktualisierung

Ziehen Sie die neuesten Images und starten Sie neu:

docker compose pulldocker compose up -d

Datenbankmigrationen laufen beim Start automatisch. Erstellen Sie immer zuerst ein Backup.

Backups

Sichern Sie das Postgres-Volume und den Lizenz-Cache:

docker compose exec postgres pg_dump -U execlave execlave > backup.sqldocker cp $(docker compose ps -q backend):/root/.execlave/ ./license-cache

Eine Wiederherstellung aus einem Backup regeneriert den Host-Fingerabdruck beim ersten Boot und registriert sich erneut beim Lizenzserver.

Air-Gapped-Modus

Wenn Ihre Umgebung license.execlave.com nicht erreichen kann:

  1. Kontaktieren Sie uns, um ein Offline-Lizenzbündel anzufordern — ein JWT mit einem längeren Offline-Kulanzfenster (typischerweise 1 Jahr).
  2. Setzen Sie LICENSE_SERVER_URL auf einen internen Proxy, der Heartbeats in eine Warteschlange stellt und sie während eines periodischen Sync-Fensters wiedergibt, ODER
  3. Lassen Sie den Heartbeat ganz weg mit LICENSE_HEARTBEAT_INTERVAL_MS=0, wenn Sie eine Offline-Lizenz haben.

Offline-Bündel sind an eine signierte Support-Vereinbarung gebunden; schreiben Sie an support@execlave.com für Details.

§ 09

Fehlerbehebung

Backend startet nicht: „License validation failed“
  • Stellen Sie sicher, dass LICENSE_KEY in der Umgebung korrekt gesetzt ist
  • Prüfen Sie, dass das JWT nicht abgelaufen ist: echo $LICENSE_KEY | cut -d. -f2 | base64 -d
  • Verifizieren Sie, dass ausgehendes HTTPS zu license.execlave.com erlaubt ist
„Instance limit exceeded“
  • Ihr Lizenzplan begrenzt die Anzahl gleichzeitiger Host-Fingerabdrücke
  • Löschen Sie veraltete Instanzen über den Lizenzserver oder aktualisieren Sie Ihren Plan
Heartbeat schlägt fehl, aber Instanz läuft noch
  • Das ist während des 14-tägigen Kulanzzeitraums zu erwarten — eine Warnung wird protokolliert
  • Prüfen Sie docker compose logs backend | grep -i license auf den genauen Fehler
Migrationsfehler beim ersten Start
  • Der Stack führt beim Boot alle ausstehenden Migrationen aus. Schlägt eine Migration fehl, stellen Sie aus Ihrem Backup wieder her und kontaktieren Sie den Support.
§ 10

Support

Self-Hosted-Deployment — Execlave Docs