2.2 KiB
2.2 KiB
Deployment
Voraussetzungen
- Podman + podman-compose
- Externes Podman-Netzwerk
traefik(Traefik-Instanz läuft im selben Netzwerk) - Traefik konfiguriert für Entrypoint
websecure(HTTPS)
Erstkonfiguration
cp .env.example .env # Umgebungsvariablen anpassen
Build & Start
sudo podman compose up -d --build
Die App ist danach erreichbar unter:
https://voicelog.aquantico.lan(via Traefik)http://127.0.0.1:8094(direkt)
Neustart nach Code-Änderungen
sudo podman rm -f diarization-ui
sudo podman compose up -d --build
Image in Registry publizieren
podman build -t registry.aquantico.lan/claw/diarization-ui:latest .
podman push registry.aquantico.lan/claw/diarization-ui:latest
Datenpersistenz
Alle persistenten Daten liegen im Podman-Volume diarization-ui_diarization_ui_data, gemountet unter /data im Container:
/data/ui.db — SQLite-Datenbank
/data/jobs/ — Temporäre Upload-Dateien (werden nach Verarbeitung gelöscht)
Achtung: Beim Neuerstellen des Containers kein
podman volume rmausführen — sonst gehen alle Daten verloren. Nurpodman rm -f diarization-uireicht.
Daten-Backup
sudo podman cp diarization-ui:/data/ui.db ./ui.db.backup
Volumes prüfen
sudo podman volume ls | grep diarization
Das korrekte Volume heißt diarization-ui_diarization_ui_data (nicht voicelog_diarization_ui_data, das ist ein veraltetes Volume aus einer früheren Benennung).
Logs
sudo podman logs -f diarization-ui
docker-compose.yml Struktur
services:
diarization-ui:
networks: [traefik]
labels:
- traefik.enable=true
- traefik.http.routers.openwebui.rule=Host(`voicelog.aquantico.lan`)
- traefik.http.routers.openwebui.entrypoints=websecure
- traefik.http.routers.openwebui.tls=true
- traefik.http.services.openwebui.loadbalancer.server.port=8094
networks:
traefik:
external: true
Lokale Entwicklung (ohne Docker/Podman)
pip install -r requirements.txt
API_BASE=http://... OLLAMA_BASE_URL=http://... DB_PATH=./ui.db \
uvicorn app:app --host 0.0.0.0 --port 8094 --reload