root bc497a1665 docs+install: vollständiger Installer + aktuelle README
Mac-Worker:
- install-launchagent.sh legt jetzt selbst venv + Dependencies an, statt
  das vorauszusetzen — ein Befehl reicht für komplette Erstinstallation
- modernes launchctl bootout/bootstrap/kickstart statt unload/load
  (alte Variante wirft auf neueren macOS-Versionen "Input/output error 5")
- neuer Sub-Befehl "restart" zum Neustarten ohne Reinstall
- neues update.sh: git pull + pip install + kickstart + Health in einem Schritt

LXC:
- install.sh ALLOWED_EXTS-Check verhindert wiederholtes ",webm"-Anhängen
- bessere Abschluss-Ausgabe mit echter Host-IP, Update-Anweisung, Diagnose-Hinweis

Docs:
- Haupt-README: aktueller Funktionsstand (Auth, PDF, Profile, Mobile/PWA,
  Diagnose, Retry alle als done markiert), Installation auf neuen Stand gebracht
- Profile-Tabelle mit allen 17 Profilen
- API-Listen vervollständigt (diag, preload, log, pdf, profiles)
- Datenfluss-Skizze mit Preload + Heartbeat + X-Job-Id beschrieben

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 20:36:35 +00:00

44 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Voice-Agent Mac-Worker — Ein-Befehl-Update.
#
# Macht: git pull (im Repo-Root) + pip install -r requirements.txt + Worker-Restart.
# Idempotent. Beendet sich mit Health-Check.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WORKDIR="$(cd "$SCRIPT_DIR/.." && pwd)"
REPO_DIR="$(cd "$WORKDIR/.." && pwd)"
LABEL="com.voiceagent.worker"
SERVICE_TARGET="gui/$(id -u)/${LABEL}"
echo "[1/4] git pull ($REPO_DIR)"
git -C "$REPO_DIR" pull --ff-only
echo "[2/4] pip install (venv: $WORKDIR/.venv)"
if [ ! -x "$WORKDIR/.venv/bin/pip" ]; then
echo "FEHLER: $WORKDIR/.venv fehlt. Bitte zuerst $SCRIPT_DIR/install-launchagent.sh ausführen." >&2
exit 1
fi
"$WORKDIR/.venv/bin/pip" install -r "$WORKDIR/requirements.txt"
echo "[3/4] Worker neu starten (kickstart -k $SERVICE_TARGET)"
if ! launchctl print "$SERVICE_TARGET" >/dev/null 2>&1; then
echo "FEHLER: LaunchAgent ist nicht geladen. Bitte $SCRIPT_DIR/install-launchagent.sh ausführen." >&2
exit 1
fi
launchctl kickstart -k "$SERVICE_TARGET"
echo "[4/4] Health-Check (max. 8 s warten)"
for _ in 1 2 3 4 5 6 7 8; do
sleep 1
if curl -fsS http://127.0.0.1:8080/health >/dev/null 2>&1; then
echo "[OK] Update durch, Worker läuft."
curl -s http://127.0.0.1:8080/health | python3 -m json.tool 2>/dev/null || true
exit 0
fi
done
echo "[!] Health-Check schlägt nach Update fehl." >&2
tail -n 30 "$HOME/Library/Logs/voice-agent-worker.err.log" 2>/dev/null || true
exit 1