Theron-Server
Überblick
Der Theron-Server ist optional und läuft bei dir. Er verbindet alle deine Theron-Instanzen:
- Web-UI: Tasks aller Apps, Headless-Worker und Konsolenläufe live verfolgen und Rückfragen von überall beantworten – auch die von THERON. Anmeldung mit Passwort und Pflicht-Zwei-Faktor.
- Bibliothek: Auf Wunsch teilen alle Instanzen ihre Prozesse und Agents – optional mit Wissen, Memorys und Datenbanken.
- Nutzung: Die Web-UI zeigt die Claude-Nutzung je App bzw. Worker.
Der Server ist ein Docker-Image (amd64 und ARM64); der Code darin ist kompilierter Maschinencode. Nichts davon läuft über uns.
Installieren
docker run -d --name theron-server --restart unless-stopped -p 8765:8765 -v theron-server:/data \ -e THERON_ADMIN_USER=admin -e THERON_ADMIN_PASSWORD='ein-langes-passwort' \ mibexx1985/theron-server docker logs theron-server # Adresse und Client-Token für die Apps
- Offline: das Archiv von der Startseite mit
docker load -i theron-server-image-amd64.tar.gzladen (Imagetheron-server:<version>). - Docker Compose (
docker-compose.yml, Start mitdocker compose up -d; Passwort und Token als Umgebungsvariablen oder in einer.env):services: theron-server: image: mibexx1985/theron-server:latest restart: unless-stopped ports: ["8765:8765"] environment: THERON_ADMIN_USER: admin THERON_ADMIN_PASSWORD: ${THERON_ADMIN_PASSWORD:?set a password} THERON_CLIENT_TOKEN: ${THERON_CLIENT_TOKEN:?set a token} volumes: ["theron-server:/data"] volumes: theron-server: - HTTPS: Betreibe den Server hinter einem Reverse-Proxy mit TLS (z. B. nginx, Traefik, ein Kubernetes-Ingress mit
cert-manager). WebSockets müssen durchgereicht werden (
/api/clientfür Apps,/api/webfür die Web-UI). Alternativ direkt mit--ssl-certfileund--ssl-keyfile. - Daten: Benutzer, 2FA, Client-Token, letzter Status und die geteilte Bibliothek liegen in
/data– als Volume einbinden. - Health-Check:
GET /healthz→{"ok": true, "clients": n}.
Konfiguration
| Variable / Option | Bedeutung |
|---|---|
THERON_ADMIN_USER, THERON_ADMIN_PASSWORD | Legt den Admin beim Start an bzw. setzt sein Passwort. |
THERON_CLIENT_TOKEN | Fester Client-Token für Apps, Worker und Konsole; ohne wird einer erzeugt und gespeichert. |
THERON_SERVER_HOME | Konfigurationsordner (im Image /data). |
THERON_HOST, THERON_PORT | Adresse und Port (Standard 0.0.0.0, 8765). |
serve --ssl-certfile … --ssl-keyfile … | TLS direkt im Server statt im Proxy. |
serve --no-state | Den letzten Status nicht auf Platte speichern. |
Befehle
| Befehl | Wirkung |
|---|---|
theron-server serve | Server starten (das tut der Container). |
theron-server init | Ersteinrichtung ohne Umgebungsvariablen: Admin und Passwort abfragen. |
theron-server user list | Benutzer und ihr 2FA-Status. |
theron-server user add NAME · user remove NAME | Benutzer anlegen (fragt das Passwort ab) bzw. entfernen. |
theron-server user reset-2fa NAME | 2FA zurücksetzen – beim nächsten Login wird sie neu eingerichtet. |
theron-server token · token --rotate | Client-Token anzeigen bzw. neu erzeugen (verbundene Apps müssen den neuen eintragen). |
Im Container: docker exec -it theron-server theron-server user add anna.
Anmelden & Zwei-Faktor
- Beim ersten Login richtet jeder Benutzer 2FA ein: QR-Code mit einer Authenticator-App scannen (Apple Passwörter, Google Authenticator, 1Password, Authy …) und einen Code bestätigen. Vorher ist nichts sichtbar.
- Danach zeigt der Server 10 Notfall-Codes – jeder einmal gültig. Gut aufbewahren.
- Bei jedem weiteren Login folgt nach dem Passwort der aktuelle Code. Eine Sitzung gilt sieben Tage.
- Handy weg: mit einem Notfall-Code anmelden oder
theron-server user reset-2fa NAME. - Falsche Passwörter und Codes werden gebremst.
Apps, Worker & Konsole verbinden
| Wer | Wie |
|---|---|
| Desktop-App | Einstellungen → Theron-Server: Adresse und Client-Token, „Status live synchronisieren“. |
| Konsole | theron config server https://… TOKEN |
| Slave | auf dem Slave-Rechner theron config server https://… TOKEN vor theron --listen |
| Headless-Worker | THERON_SERVER_URL und THERON_SERVER_TOKEN |
Die Adresse darf host:port, http://… oder https://… sein. Den Token zeigt
docker logs theron-server oder theron-server token. Eine App im Slave-Betrieb verbindet sich
nicht selbst – das übernimmt ihr Slave.
Die Web-UI
- Ein Tab je Client: jede App, jeder Worker und jeder Konsolenlauf (je Ordner) mit Online-Status und der Zahl offener Rückfragen.
- Aktive Prozesse: links die Tasks des Clients, „Wartet auf dich“ zuerst; rechts Prozessfluss, Agent-Karten, Chat und die Claude-Nutzung des Clients.
- Rückfragen beantworten: Fragen nacheinander mit Antwortvorschlägen, ★ empfohlen, eigene Antwort und optionale Nachricht. Was erlaubt ist, legt jede App selbst fest (Einstellungen → Theron-Server → Sicherheitsstufe): Keine Eingabe, Nur vordefinierte Antworten oder Freie Eingabe mit Sicherheitsprüfung – dann prüft der Rechner jede Antwort mit Regeln und einer isolierten KI-Prüfung, bevor Theron sie bekommt. Vom Server kommen nur Antworten auf offene Rückfragen, nie neue Aufträge.
- Stopp hält einen Task an.
- Reset (oben rechts) löscht den Status des Servers – Clients, Tasks, offene Rückfragen – und holt ihn sofort neu von den verbundenen Clients. Die geteilte Bibliothek bleibt.
Bibliothek teilen
- Mit „Prozesse und Agents mit dem Server synchronisieren“ (App) bzw.
theron config sync on(Konsole, Worker) teilen alle Instanzen ihre Prozesse und Agents. Neu, geändert oder gelöscht auf einem Gerät – auf allen anderen ebenso; bei gleichzeitigen Änderungen gewinnt die neuere. - Getrennt einschaltbar: das Wissen der Agents (Dokumente, Ordner, Links), die Memorys der Memory-Knoten und die ▤ Datenbanken (jeder Eintrag einzeln abgeglichen).
- Projekte, Tasks und Task-Listen bleiben lokal, ebenso die temporären Prozesse und Agents von THERON.
- Nach einem Zurücksetzen oder auf einem neuen Gerät kommt alles vom Server zurück – ein Zurücksetzen löscht dort nichts. Gleichnamige Agents und Prozesse auf zwei Geräten gelten als dieselben.
Sicherheit
- Apps, Worker und Konsole melden sich mit dem Client-Token an; Menschen mit Passwort und Pflicht-2FA.
- Betreibe den Server hinter HTTPS – sonst gehen Token, Chat und Ergebnisse unverschlüsselt durchs Netz.
- Der Server sieht Laufstatus, Chat, Agent-Ergebnisse, Nutzung, Rechnername und Version – und bei eingeschaltetem Sync die geteilte Bibliothek. Er führt nichts aus; Antworten aus dem Web prüft der jeweilige Rechner.