Admin einrichten
Du richtest das tibi-admin (Verwaltungs-Backend, Release Nova) lokal ein und verbindest es mit dem Tibi-Server. Code-Repo ist ausschließlich tibi-admin-nova — alte tibi-admin-Repos ignorieren. Stack: Svelte 5, esbuild-Build, Tailwind 4, Playwright-Tests (siehe package.json).
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“| Braucht | Wofür |
|---|---|
Node 20 + yarn |
yarn install, esbuild-Build (scripts/esbuild-wrapper.js) |
| Docker + Compose | Lokaler Stack (docker-compose-local.yml, Profile tibi / tibi-dev) |
Datei .env |
Projekt-Name, URLs, Ports (Beispielwerte unten) |
node --version # 20.xyarn --versiondocker compose versionStarten
Abschnitt betitelt „Starten“cp .env.example .env(falls vorhanden) undPROJECT_NAMEsetzen.make init— legttmp/-Verzeichnisse an.make docker-up— startet Frontend-Build,tibiserver, Mongo, Maildev (--profile tibi).- Admin-URL aus
.envöffnen (z. B.https://<projekt>.code.testversion.onlinebzw. lokal Port 3000). - Auf der Login-Seite anmelden.
| Dienst | Port/Exposed | Hinweis |
|---|---|---|
yarnstart (Admin-Frontend) |
3000 | Baut per yarn install && yarn start… mit API_BASE aus .env |
tibiserver |
8080 | API unter /api, Admin ruft /api/v1 |
| Mongo / Maildev | intern | Über Compose-Namen verdrahtet |
Nützliche Ziele: make docker-ps, make docker-logs, make docker-down, make docker-restart-frontend.
yarn installAPI_BASE=https://<server>/api/v1 yarn start(Dev) bzw.yarn build(statisches Bundle).- Browser auf die ausgegebene lokale URL zeigen.
API_BASE entscheidet, gegen welchen Server du arbeitest — Staging-URL steht in .env als STAGING_TIBI_API_URL (z. B. https://dev-tibi-server.staging.testversion.online/api/v1).
Verbinden und Mock-Modus
Abschnitt betitelt „Verbinden und Mock-Modus“| Modus | Erkennen | Verhalten |
|---|---|---|
| Echter Server | API_BASE zeigt auf laufenden tibi-server |
Alle Daten live; Login per Benutzername/Passwort |
| Mock-Modus | Kein Server erreichbar / Mock-Flag (isMockMode()) |
Lokale Demo-Daten aus frontend/assets/mock/ mit den Demo-Projekten (corporate, blog, shop, events, intranet); Actions simulieren Fortschritt (simulateMockProgress) |
- Laufzeitwerte liegen in
frontend/assets/system.config.json(KI-Endpunkte, TTS-Stimmen); Proxy-Ziele und Modelle inconfig/ai-proxy.config.json— siehe KI-Funktionen. - Fehlerbilder bei falscher Verbindung: Login-Fehlerbox, Netzwerkfehler bei Listen/Actions — dann
API_BASE, Server-Container (make docker-ps) und Token-Köpfe prüfen.
Runtime-System-Config
Abschnitt betitelt „Runtime-System-Config“Die Datei frontend/assets/system.config.json steuert zur Laufzeit KI-Endpunkte, TTS-Stimmen und Engine-Modi.
Schema: schemas/config/system-config.schema.json (Pflichtblock ai mit chat, summarizer, translation, vision, stt, tts); geladen per loadRuntimeSystemConfig (frontend/src/lib/runtime-system-config.ts:205-225).
| Bereich | Felder | Engine-Modi |
|---|---|---|
ai.chat |
enabled, endpoint (/api/ai/chat), modelsEndpoint (/api/ai/models) |
— |
ai.summarizer |
endpoint (teilt sich den Chat-Endpunkt) |
— |
ai.translation |
enabled, endpoint, systemPrompt |
— |
ai.vision |
enabled, endpoint (/api/ai/vision), defaultPrompt, image (maxWidth/maxHeight/quality) |
— |
ai.stt |
enabled, endpoint (/api/ai/transcribe), engine |
auto / api / browser / none |
ai.tts |
enabled, endpoint (/api/ai/tts), engine, defaultVoice, voices, speed (min/max/step/default) |
auto / api / browser / none |
Stimmen (Schema-Enum): eva-de (Standard), kerstin-de, ramona-de; Tempo-Defaults 0.5–2.0, Schritt 0.1, Standard 1.3. Beleg: frontend/assets/system.config.json:35-39 (defaultVoice, voices), schemas/config/system-config.schema.json:20-26 (ttsVoice-Enum), Anzeige-Labels frontend/src/lib/i18n/locales/de.json:1130-1136 (ttsVoice, ttsSourceAi).
Fehlt die Datei oder ist sie ungültig, fällt der Admin still auf die eingebauten Defaults zurück (console.warn, runtime-system-config.ts:219-222) — die Werte entsprechen der ausgelieferten system.config.json. Eigene Werte werden tief mit den Defaults verschmolzen (deepMerge) und danach sanitiert (unbekannte Engine → auto, leere Stimmenliste → Defaults, TTS-Tempo auf min/max geklemmt).
Darstellung (Hell/Dunkel)
Abschnitt betitelt „Darstellung (Hell/Dunkel)“Den Theme-Umschalter findest du rechts oben in der Kopfzeile (ui/ThemeToggle.svelte). Er zeigt als Tooltip Hell oder Dunkel — je nachdem, in welchen Modus du wechselst. Deine Wahl landet in localStorage (tibi-theme) und gilt schon vor dem ersten Zeichnen, damit nichts flackert.

yarn validate # svelte-check + tscyarn build # esbuild-Bundle, muss fehlerfrei durchlaufenyarn test:e2e # Playwright E2E
Verifiziert am 2b091d8 2026-10-17 (tibi-admin-nova); Runtime-System-Config verifiziert am 2b091d8 (runtime-system-config.ts:205-222, frontend/assets/system.config.json:35-39, schemas/config/system-config.schema.json:20-26)