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>
44 lines
1.5 KiB
Bash
Executable File
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
|