voice-agent/lxc-frontend
root d4b0d21ed1 fix(frontend): no-cache Header für Static-Files und Index
Browser haben nach Deploys die alten app.js / style.css aus dem Cache
weiterbenutzt. Mit Cache-Control: no-cache, must-revalidate wird bei
jeder Anfrage revalidiert (304 wenn unverändert, 200 wenn neu).
2026-05-14 02:24:58 +00:00
..

Voice-Agent — LXC-Frontend

FastAPI + statisches HTML/JS. Läuft im LXC-Container, stellt die Weboberfläche, verwaltet Jobs (SQLite) und ruft den Mac-Worker per HTTP an. Macht selbst keine AI-Verarbeitung.

Lokal starten (Entwicklung)

cd lxc-frontend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Für lokalen Test ohne Mac kann der Mac-Worker mit WHISPER_ENGINE=mock laufen
uvicorn app.main:app --reload --port 8000

Öffnen: http://localhost:8000

Auf LXC deployen

deploy/install.sh macht alles: Repo klonen, venv anlegen, systemd-Service und Nginx einrichten. Siehe Haupt-README.md.

API

Methode Pfad Zweck
GET / Web-UI
GET /health LXC-Health
GET /api/mac/health Mac-Worker-Erreichbarkeit
POST /api/jobs multipart: audio, title → Job anlegen
GET /api/jobs Liste aller Jobs
GET /api/jobs/{id} Job-Detail
GET /api/jobs/{id}/download/{kind} kinddocx, transcript, summary, protocol

Datenfluss

Upload → SQLite-Job → BackgroundTask
  → Mac: /api/transcribe (multipart)
  → Mac: /api/summarize (JSON)
  → Mac: /api/protocol (JSON)
  → Mac: /api/export/docx (JSON) → DOCX
→ Ergebnisse landen in /var/lib/voice-agent/results/{job_id}/