root 5321c8602e feat: voice-agent MVP — LXC web frontend + Mac AI worker
LXC-Frontend (FastAPI + HTML/JS):
- Audio-Upload (MP3/WAV/M4A/MP4/OGG/FLAC, max. 500 MB)
- SQLite Job-Store, BackgroundTask-Pipeline
- Job-Liste mit Live-Status, Downloads (DOCX + JSON)
- Mac-Health-Indicator im UI

Mac-Worker (FastAPI):
- /api/transcribe (lightning-whisper-mlx | faster-whisper | mock)
- /api/summarize + /api/protocol via Ollama (llama3.1:8b)
- /api/export/docx via python-docx

Deploy:
- systemd-Service, Nginx Reverse-Proxy
- deploy/install.sh: idempotentes LXC-Setup

Doku: README.md, lxc-frontend/README.md, mac-worker/README.md
2026-05-13 15:33:53 +00:00

Voice-Agent

Self-hosted Transkriptions- und Protokollsystem für Sitzungsaufzeichnungen — vollständig lokal, DSGVO-konform.

Vollständiges Lastenheft: siehe need.md

Architektur

Benutzer
  │
  ▼  HTTP (Upload)
┌─────────────────────────────┐         ┌──────────────────────────────┐
│  LXC-Container              │  HTTP   │  Mac (Apple Silicon)         │
│  - FastAPI + HTML/JS UI     │ ──────► │  - FastAPI Worker            │
│  - SQLite Job-Store         │         │  - lightning-whisper-mlx     │
│  - Result-Verzeichnis       │ ◄────── │  - Ollama (llama3.1:8b)      │
│  - Nginx Reverse Proxy      │         │  - python-docx               │
└─────────────────────────────┘         └──────────────────────────────┘
  • LXC: keine AI-Verarbeitung — nur Uploads, Job-Tracking, Auslieferung.
  • Mac: Stateless API. Erhält Audio/Text, gibt Transkripte / Zusammenfassungen / Protokolle / DOCX zurück.

MVP-Funktionsumfang (v0.1)

  • Audio-Upload (MP3, WAV, M4A, MP4, OGG, FLAC, max. 500 MB)
  • Whisper-Transkription auf dem Mac
  • Ollama-Zusammenfassung (Beschlüsse, Aufgaben, Teilnehmer)
  • Strukturiertes Sitzungsprotokoll
  • DOCX-Export
  • Speaker-Diarization (Prio 2)
  • Auth / Benutzerverwaltung (Prio 2)
  • PDF-Export (Prio 2)

Schnellstart

1. Mac einrichten

Siehe mac-worker/README.md.

2. LXC provisionieren

Mit dem Toolkit-Skill /proxmox-lxc (oder manuell). Anschließend auf dem LXC:

sudo bash <(curl -sSL https://git.cynfo.net/christian/voice-agent/raw/branch/main/deploy/install.sh)

oder nach git clone:

cd /var/www/voice-agent
sudo ./deploy/install.sh

3. Konfigurieren

/var/www/voice-agent/lxc-frontend/.env öffnen und MAC_API_URL auf die LAN-IP des Macs setzen, dann:

sudo systemctl restart voice-agent

4. Verwenden

Browser auf http://<LXC-IP>/ öffnen, Audio hochladen, fertig.

Verzeichnisstruktur

voice-agent/
├── lxc-frontend/        # FastAPI Web-App (läuft im LXC)
│   ├── app/
│   ├── requirements.txt
│   └── .env.example
├── mac-worker/          # FastAPI AI-Worker (läuft auf dem Mac)
│   ├── app/
│   ├── requirements.txt
│   └── .env.example
├── deploy/              # systemd / nginx / install.sh
├── config/              # Toolkit-Konfiguration (project.env)
├── .claude/             # KI-Agenten Skills
├── need.md              # Lastenheft
└── README.md

Sicherheit

  • Vollständig lokaler Betrieb. Keine Cloud-Calls.
  • HTTPS via Reverse-Proxy ist Aufgabe der Infrastruktur (Let's Encrypt o. Ä.).
  • Mac-Worker hat keine Auth — Betrieb nur im internen Netz.
  • Uploads / Ergebnisse unter /var/lib/voice-agent/ — bei Bedarf Backup einplanen.
Description
Self-hosted AI transcription system (LXC web frontend + Mac AI worker)
Readme 525 KiB
Languages
Python 51.6%
JavaScript 23.9%
CSS 11.9%
Shell 7.7%
HTML 4.6%
Other 0.3%