Zum Inhalt springen

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).

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)
Versionen prüfen
node --version # 20.x
yarn --version
docker compose version
  1. cp .env.example .env (falls vorhanden) und PROJECT_NAME setzen.
  2. make init — legt tmp/-Verzeichnisse an.
  3. make docker-up — startet Frontend-Build, tibiserver, Mongo, Maildev (--profile tibi).
  4. Admin-URL aus .env öffnen (z. B. https://<projekt>.code.testversion.online bzw. lokal Port 3000).
  5. 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.

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 in config/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.

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).

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.

Theme-Umschalter im tibi-admin: Kopfzeile mit Tooltip Dunkel zum Wechsel in den dunklen Modus

Build und Tests
yarn validate # svelte-check + tsc
yarn build # esbuild-Bundle, muss fehlerfrei durchlaufen
yarn test:e2e # Playwright E2E

Projektliste im tibi-admin nach dem Login: Karten für Blog Platform, Corporate Website, Event Portal, Intranet, Online Shop und Test Core mit Online-Status

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)