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 |