Für Administratoren
← Alle Themen

Installation auf dem eigenen Server

Wie eine Installation aufgebaut ist: das Paket und die Lizenz, die Dienste, HTTPS, der Updater, die Einstellungen in .env und was wo liegt.

Sie können draften auf Ihrem eigenen Server betreiben. Post, Entwürfe und Schlüssel bleiben dann bei Ihnen; hinaus geht nur, was Sie an den Anbieter des Sprachmodells senden (oder gar nichts, mit einem lokalen Modell).

Diese Seite gibt einen Überblick, wie eine Installation aufgebaut ist. Den Ablauf selbst beschreibt Installation Schritt für Schritt.

Das Paket und die Lizenz

Jede Version von draften ist ein Paket, eine Datei draften-<version>.tar. Es enthält die Images aller Dienste, die Dateien, die sie starten, eine signierte Liste von allem, was darin ist, und den Befehl ./draften, der die Installation verwaltet. Der Server braucht nichts außer Docker.

Für den Betrieb brauchen Sie eine Lizenz – eine Datei, die Sie von uns erhalten und in der Oberfläche hochladen. Sie begrenzt die Zahl der Postfächer und Assistenten, und ihr Schlüssel dient auch zum Herunterladen neuer Versionen. Mehr unter Die Lizenz.

Woraus eine Installation besteht

Alles läuft in Docker über docker compose:

DienstWas er tut
dbdie Datenbank MariaDB – enthält alles: Einstellungen, Anweisungen, Nachrichten, Entwürfe, verschlüsselte Geheimnisse. Nichts von einem anderen Rechner greift auf sie zu
workerliest die Postfächer, ruft die Modelle auf, schreibt Entwürfe, lernt, führt die Schritte der Einrichtung aus. Es können mehrere laufen
web-blue, web-greendie Weboberfläche und API in zwei Farben: eine bedient, die andere wartet auf die nächste Version – deshalb verursachen Aktualisierungen keinen Ausfall
proxyder Zugang von außen: schaltet zwischen den Farben der Weboberfläche um und beendet optional HTTPS
updateroptional: führt aus, was der Betreiber unter Installation anfordert (Aktualisierung, Zurücksetzen, Zahl der Prozesse, Ersetzen des Schlüssels)
cloudflaredoptional: Veröffentlichung der Oberfläche über einen Cloudflare Tunnel

Oberfläche und Worker sprechen nicht direkt miteinander – beide arbeiten mit derselben Datenbank; was Post oder ein Modell braucht, stellt die Oberfläche als Job für den Worker in die Warteschlange.

Was Sie brauchen

HTTPS

Der Updater

Der Updater ist ein optionaler Dienst, der ausführt, was der Betreiber unter Installation → Installation anfordert: eine Aktualisierung auf eine neue Version, das Zurücksetzen auf die vorherige, das Ändern der Zahl der Worker-Prozesse und das Ersetzen des Verschlüsselungsschlüssels. Dafür führt er dasselbe ./draften aus, das Sie selbst ausführen würden.

Der Updater hat Zugriff auf Docker, was Root-Rechte auf dem Server bedeutet. Die Oberfläche selbst rührt Docker nie an – sie schreibt nur einen Auftrag für den Updater in die Datenbank. Er wird bei der Installation eingeschaltet (COMPOSE_PROFILES=updater in .env); ohne ihn funktioniert alles über die Kommandozeile.

Einstellungen in .env

Die Datei .env im Verzeichnis der Installation schreibt das Installationsprogramm, und nur ihr Eigentümer kann sie lesen. Sie enthält die Infrastruktur und die Geheimnisse; alles über die Assistenten steht in der Datenbank und wird in der Oberfläche eingestellt.

VariableWofür
DRAFTEN_VERSION, DRAFTEN_EDITIONdie laufende Version und die Edition (onprem)
DB_ROOT_PASSWORD, DB_PASSWORDPasswörter der Datenbank
MASTER_KEYder Schlüssel, der die Geheimnisse in der Datenbank verschlüsselt (API-Schlüssel, Zugriffe auf Postfächer, Anmelde-Clients). Bewahren Sie eine Kopie außerhalb des Servers auf
MASTER_KEY_PREVIOUSder vorherige Schlüssel nach einem Ersetzen, solange backups/ Sicherungen von davor enthält
WEB_APP_SECRETeine zufällige Zeichenkette, die Sitzungen signiert
WEB_PUBLIC_URLdie Adresse, unter der die Leute die Oberfläche öffnen; aus ihr entstehen die Weiterleitungsadressen der Anmeldung
WEB_BIND, DRAFTEN_TLS, WEB_TLS_BINDwo HTTP und HTTPS lauschen
COMPOSE_PROFILESoptionale Dienste: updater, tunnel
DRAFTEN_BACKUPSwie viele Datenbanksicherungen von vor einer Aktualisierung in backups/ bleiben (Standard 3)
CLOUDFLARE_TUNNEL_TOKENnur mit einem Cloudflare Tunnel
INTERVAL_SECONDS, WORKER_CONCURRENCYdas Standardintervall der Abrufe und die gleichzeitigen Abrufe (besser in der Oberfläche einstellen)
WORKER_REPLICASwie viele worker-Prozesse auf diesem Rechner laufen (Standard 1), siehe Betrieb und Kapazität

Ein Wert mit einem $-Zeichen muss in .env als $$ geschrieben werden – sonst geht der Teil nach dem Dollar stillschweigend verloren. Schlüssel, die mit openssl rand -hex 32 erzeugt werden, enthalten nie ein Dollarzeichen.

Was wo liegt

.envEinstellungen und Geheimnisse der Installation
compose.yaml, proxy/wie die Container laufen; jede Aktualisierung ersetzt sie
backups/Datenbanksicherungen von vor Aktualisierungen
data/das Log und die Berichte des Workers
updates/Pakete, die auf die Installation warten; auch der Updater lädt hierher herunter
NOTES.mdwas die installierte Version geändert hat

Weiter

Textfassung