refactor: architektur-optimierungen (systemd, jq, httpx, commit-hook)

This commit is contained in:
Hitonabi
2026-07-06 20:38:18 +02:00
parent 3fba487963
commit c92f238d2d
5 changed files with 30 additions and 4 deletions
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Wrapper fuer "git commit", der das Frontend automatisch baut, wenn Dateien geaendert wurden.
# Benutzung: ./deploy/commit.sh -m "deine commit message"
set -euo pipefail
# In das Projekt-Root wechseln
cd "$(dirname "$0")/.."
FRONTEND_DIR="frontend"
# Pruefen, ob Dateien im Frontend-Ordner fuer den Commit vorgemerkt (staged) sind,
# die einen Build erfordern (src, index.html, package.json, etc.).
if git diff --cached --name-only | grep -q "^$FRONTEND_DIR/src/\|^$FRONTEND_DIR/index.html\|^$FRONTEND_DIR/package.json\|^$FRONTEND_DIR/vite.config.ts"; then
echo "=== Frontend-Aenderungen in der Stage entdeckt. Starte Build... ==="
(cd "$FRONTEND_DIR" && npm run build)
# Das neu gebaute dist-Verzeichnis direkt mit stagen
git add "$FRONTEND_DIR/dist"
echo "=== Build abgeschlossen und frontend/dist gestaged. ==="
else
echo "=== Keine Frontend-Aenderungen in der Stage. Ueberspringe Build. ==="
fi
# Führe den eigentlichen Commit mit den übergebenen Parametern durch
exec git commit "$@"
+1
View File
@@ -14,6 +14,7 @@ Wants=network-online.target
Type=simple
WorkingDirectory=%h/mission-control-v2/backend
ExecStart=%h/mission-control-v2/backend/.venv/bin/python -m uvicorn app:app --host 0.0.0.0 --port 9001
Environment=PYTHONPATH=%h/mission-control-v2
Environment=MC_PORT=9001
Environment=MC_LLAMA_SWAP_URL=http://127.0.0.1:8080
Environment=MC_CONFIG_PATH=/etc/llama-swap/config.yaml
+2 -2
View File
@@ -65,8 +65,8 @@ case "$ROLE" in
*) SYS="${WORKER_SYS:-$BUILD_SYS}" ;;
esac
RESP="$(jq -n --arg m "$MODEL" --arg s "$SYS" --arg u "$TASK" --argjson t "$MAXTOK" --argjson temp "$TEMP" \
'{model:$m, temperature:$temp, max_tokens:$t, messages:[{role:"system",content:$s},{role:"user",content:$u}]}' \
RESP="$(printf '%s' "$TASK" | jq -Rs . | jq -n --arg m "$MODEL" --arg s "$SYS" --argjson t "$MAXTOK" --argjson temp "$TEMP" \
'{model:$m, temperature:$temp, max_tokens:$t, messages:[{role:"system",content:$s},{role:"user",content:input}]}' \
| curl -s --max-time 300 "$ENDPOINT" -H 'Content-Type: application/json' -d @- 2>/dev/null)"
OUT="$(printf '%s' "$RESP" | jq -r '.choices[0].message.content // empty' 2>/dev/null)"