Files
MUA-Mikes-Unraid-Agent/scripts/rc.mua
T
Mikei386 8a3ecaf39f r002: API-Key-Auth + Einstellungs-Maske (API-Key generieren, Tool-Checkboxen)
- src/auth.ts: Config-Management (API-Key + Tool-Filter), timing-safe Auth
- src/index.ts: Auth-Check auf /mcp, Tool-Filter in tools/list + tools/call,
  Config-Server auf 127.0.0.1:3003 (nur localhost)
- scripts/mua.page: Einstellungs-UI (API-Key generieren + Tool-Checkboxen)
- scripts/rc.mua: Config-Dir sicherstellen
- Version: 2026.08.18.r002
2026-08-18 10:53:07 +02:00

82 lines
2.1 KiB
Bash

#!/bin/bash
# MUA - Mikes Unraid Agent
# SysVinit-Service-Script (rc.mua)
# Unraid nutzt SysVinit, kein systemd.
# Wird installiert nach /etc/rc.d/rc.mua
#
# Läuft das kompilierte TypeScript-Binary (Bun Runtime) —
# kein PHP-Built-in-Server mehr.
DAEMON="/usr/local/bin/mua"
PIDFILE="/var/run/mua.pid"
LOGFILE="/var/log/plugins/mua.log"
PORT=3002
start() {
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
echo " MUA läuft bereits (PID $(cat "$PIDFILE"))"
return 0
fi
if [ ! -x "$DAEMON" ]; then
echo " FEHLER: Binary nicht gefunden: $DAEMON"
return 1
fi
# Config-Verzeichnis sicherstellen (für API-Key)
mkdir -p /boot/config/plugins/mua
# Server starten (detached)
MUA_PORT=$PORT nohup "$DAEMON" >> "$LOGFILE" 2>&1 &
echo $! > "$PIDFILE"
sleep 1
if kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
echo " MUA gestartet (PID $(cat "$PIDFILE"), Port $PORT)"
return 0
else
echo " FEHLER: MUA konnte nicht gestartet werden"
cat "$LOGFILE" 2>/dev/null | tail -5
return 1
fi
}
stop() {
if [ -f "$PIDFILE" ]; then
local pid=$(cat "$PIDFILE")
if kill -0 "$pid" 2>/dev/null; then
kill "$pid" 2>/dev/null
sleep 1
kill -0 "$pid" 2>/dev/null && kill -9 "$pid" 2>/dev/null
echo " MUA gestoppt (PID $pid)"
fi
rm -f "$PIDFILE"
else
# Fallback: per Port suchen
local pid=$(lsof -ti :$PORT 2>/dev/null)
if [ -n "$pid" ]; then
kill "$pid" 2>/dev/null
echo " MUA gestoppt (PID $pid, per Port)"
else
echo " MUA läuft nicht"
fi
fi
}
status() {
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
echo " MUA läuft (PID $(cat "$PIDFILE"), Port $PORT)"
return 0
else
echo " MUA läuft nicht"
return 1
fi
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; start ;;
status) status ;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac