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:
| Dienst | Was er tut |
|---|---|
db | die Datenbank MariaDB – enthält alles: Einstellungen, Anweisungen, Nachrichten, Entwürfe, verschlüsselte Geheimnisse. Nichts von einem anderen Rechner greift auf sie zu |
worker | liest 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-green | die Weboberfläche und API in zwei Farben: eine bedient, die andere wartet auf die nächste Version – deshalb verursachen Aktualisierungen keinen Ausfall |
proxy | der Zugang von außen: schaltet zwischen den Farben der Weboberfläche um und beendet optional HTTPS |
updater | optional: führt aus, was der Betreiber unter Installation anfordert (Aktualisierung, Zurücksetzen, Zahl der Prozesse, Ersetzen des Schlüssels) |
cloudflared | optional: 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
- einen x86-64-Server mit Linux und Docker 24 oder neuer (mit dem Compose-Plugin), 4 GB Arbeitsspeicher und 20 GB Speicherplatz,
- die Adresse, unter der die Oberfläche erreichbar sein wird, mit HTTPS – ein Zertifikat direkt in draften oder Ihr Reverse Proxy oder Tunnel,
- Zugriff auf die Postfächer: eine App-Registrierung in Microsoft Entra, ein Dienstkonto von Google Workspace oder IMAP-Angaben,
- einen API-Schlüssel für Modelle (Anthropic, OpenAI) oder Ihren eigenen OpenAI-kompatiblen Server,
- eine Lizenz von uns.
HTTPS
- In draften: Geben Sie dem Installationsprogramm das Zertifikat und seinen Schlüssel (PEM). draften lauscht dann auf Port 443 und leitet von Port 80 um. Ein erneuertes Zertifikat spielen Sie mit
./draften certificate new.pem new.keyein, ohne eine einzige Anfrage zu verlieren. Das Zertifikat beschaffen Sie selbst (von einer Zertifizierungsstelle oder mit einem ACME-Client). - Vor draften: Ohne Zertifikat lauscht draften auf
127.0.0.1:8085, und Ihr Proxy oder Tunnel beendet 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.
| Variable | Wofür |
|---|---|
DRAFTEN_VERSION, DRAFTEN_EDITION | die laufende Version und die Edition (onprem) |
DB_ROOT_PASSWORD, DB_PASSWORD | Passwörter der Datenbank |
MASTER_KEY | der 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_PREVIOUS | der vorherige Schlüssel nach einem Ersetzen, solange backups/ Sicherungen von davor enthält |
WEB_APP_SECRET | eine zufällige Zeichenkette, die Sitzungen signiert |
WEB_PUBLIC_URL | die Adresse, unter der die Leute die Oberfläche öffnen; aus ihr entstehen die Weiterleitungsadressen der Anmeldung |
WEB_BIND, DRAFTEN_TLS, WEB_TLS_BIND | wo HTTP und HTTPS lauschen |
COMPOSE_PROFILES | optionale Dienste: updater, tunnel |
DRAFTEN_BACKUPS | wie viele Datenbanksicherungen von vor einer Aktualisierung in backups/ bleiben (Standard 3) |
CLOUDFLARE_TUNNEL_TOKEN | nur mit einem Cloudflare Tunnel |
INTERVAL_SECONDS, WORKER_CONCURRENCY | das Standardintervall der Abrufe und die gleichzeitigen Abrufe (besser in der Oberfläche einstellen) |
WORKER_REPLICAS | wie 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
.env | Einstellungen 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.md | was die installierte Version geändert hat |
Weiter
- Installation Schritt für Schritt,
- Verwaltung der Installation – Version, Lizenz, Standardschlüssel und Standard-Absender, Organisationen,
- Aktualisieren mit dem Updater und über die Kommandozeile,
- Betrieb und Kapazität,
- Sicherung und Wiederherstellung,
- Fehlerbehebung.