1 Konfiguration
chinux edited this page 2026-05-30 18:31:15 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Konfiguration

Alle Einstellungen liegen in der .env (Vorlage: .env.example).

authentik (OIDC)

Lege in authentik einen OAuth2/OIDC-Provider an und binde ihn an eine Anwendung:

  • Client-Typ: Public (Single-Page-App, kein Client-Secret)
  • PKCE: aktiviert
  • Redirect-URI: https://voicecal.example.de/ (deine App-URL)

Übernimm die Werte in die .env:

Variable Bedeutung
OIDC_ISSUER Issuer-URL des Providers (endet meist auf /application/o/<slug>/)
OIDC_AUDIENCE Client-ID
VITE_OIDC_AUTHORITY gleiche Issuer-URL (fürs Frontend)
VITE_OIDC_CLIENT_ID gleiche Client-ID (fürs Frontend)

Die VITE_*-Werte sind Build-Args nach Änderung das Frontend neu bauen (docker compose up -d --build).

Nextcloud (CalDAV)

CalDAV nutzt kein OIDC. Erzeuge in Nextcloud unter Einstellungen → Sicherheit → App-Passwörter ein App-Passwort.

Variable Bedeutung
CALDAV_URL z. B. https://cloud.example.de/remote.php/dav
CALDAV_USER Nextcloud-Login-Name
CALDAV_PASSWORD App-Passwort (nicht das Login-Passwort)
CALDAV_CALENDAR Anzeigename des Zielkalenders (leer = erster gefundener)
CALDAV_TASK_CALENDAR Kalender für Aufgaben (leer = wie CALDAV_CALENDAR)

OpenRouter (LLM)

Variable Bedeutung
OPENROUTER_API_KEY API-Key
OPENROUTER_MODEL Default-Modell (zur Laufzeit in der App umstellbar)

Datenschutz: Im OpenRouter-Account unter Privacy model training deaktivieren und idealerweise ZDR (Zero Data Retention) erzwingen. Achtung: Viele kostenlose Modelle laufen über Provider, die loggen/trainieren bei erzwungenem ZDR fallen diese weg. Der openrouter/free-Router wählt automatisch ein freies, für strukturierte Ausgaben geeignetes Modell.

Modell in der App wechseln

Über das Zahnrad oben rechts lässt sich das Modell jederzeit umstellen (kuratierte Liste + Freitextfeld für einen beliebigen Modell-String). Die Wahl wird serverseitig in /data/settings.json gespeichert und überlebt Neustarts kein Rebuild nötig.

Whisper

Variable Standard Hinweis
WHISPER_MODEL large-v3-turbo multilingual, kann Deutsch
WHISPER_DEVICE cpu cuda bei vorhandener GPU
WHISPER_COMPUTE_TYPE int8 float16 auf GPU

Sonstiges

Variable Standard Hinweis
TIMEZONE Europe/Berlin wichtig für die Auflösung relativer Zeiten
CORS_ORIGINS in Produktion auf die App-URL setzen