Files
MUA-Mikes-Unraid-Agent/plugin/mua.plg
T

192 lines
6.0 KiB
XML

<?xml version='1.0' standalone='yes'?>
<!DOCTYPE PLUGIN [
<!ENTITY name "mua">
<!ENTITY author "Michael">
<!ENTITY version "2026.08.18.r006">
<!ENTITY launch "Settings/MUA">
<!ENTITY pluginURL "http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent/raw/branch/main/plugin/mua.plg">
<!ENTITY pluginLOC "/boot/config/plugins/&name;">
<!ENTITY emhttpLOC "/usr/local/emhttp/plugins/&name;">
<!ENTITY txzURL "http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent/raw/branch/main/dist/mua-2026.08.18.r006-x86_64-1.txz">
<!ENTITY txzSHA256 "b01b62d482f91bf51029b85639bb67a9db919a383ae5cf3316c59bd022766e7d">
]>
<PLUGIN name="&name;"
author="&author;"
version="&version;"
launch="&launch;"
pluginURL="&pluginURL;"
icon="cubes"
min="7.0.0"
support="http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent"
project="http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent"
>
<CHANGES>
### 2026.08.18.r006
- Neues Tool: unraid_system_shell — direkter Shell-Zugriff auf den Unraid-Host (root, /bin/sh -c). Liefert exit_code + stdout + stderr (JSON).
- WebGUI: unraid_system_shell in der System-Tool-Gruppe (jetzt 2 System-Tools, insgesamt 22 Tools).
### 2026.08.18.r005
- Fix: unraid_docker_analyze_logs scan-all-Modus (ohne container-Parameter) funktionierte nicht — docker logs ohne Container-Argument lief ins Leere. Jetzt Loop über alle laufenden Container.
- Output: sample_matches enthält jetzt den Container-Namen + neues Feld containers_with_matches.
### 2026.08.18.r004
- Auto-Restart: Binary erkennt Update auf Platte (mtime/size) und startet den Service automatisch neu.
- WebGUI: „MUA neu starten"-Button (manueller Restart über Config-Server).
- POST-INSTALL/UPDATE: Service wird nach Installation/Update automatisch neu gestartet.
- WebGUI: Version wird dynamisch aus /health gelesen (kein hartkodiertes rNNN).
### 2026.08.18.r002
- API-Key-Authentifizierung (Bearer-Token) für den MCP-HTTP-Endpunkt (Port 3002). /health bleibt offen.
- Einstellungs-Maske im WebGUI-Tab: API-Key generieren + Tools per Checkbox aktivieren/deaktivieren.
- Config-Server auf 127.0.0.1:3013 (nur localhost) für WebGUI-Integration.
- Tool-Filter: deaktivierte Tools werden in tools/list ausgeblendet und bei tools/call abgelehnt.
### 2026.08.18.r001
- Initial release: 21 Docker, network, and system tools as MCP server over HTTP (Streamable HTTP, port 3002).
- Runtime: TypeScript (Bun Runtime, compiled binary) — no PHP built-in server.
</CHANGES>
<!--
===========================================
PRE-INSTALL: Cleanup + Verzeichnisse
===========================================
-->
<FILE Run="/bin/bash">
<INLINE>
set -e
echo ""
echo "===================================================="
echo " MUA - Mikes Unraid Agent"
echo " Installation"
echo "===================================================="
echo ""
# Verzeichnisse
mkdir -p &emhttpLOC;
mkdir -p &pluginLOC;
mkdir -p /var/log/plugins
touch /var/log/plugins/mua.log
</INLINE>
</FILE>
<!--
===========================================
SLACKWARE-PACKET INSTALLIEREN
===========================================
Das .txz enthält:
usr/local/bin/mua (kompiliertes Binary)
usr/local/bin/unraid-docker-mcp-helper.php (PHP-Helper)
etc/rc.d/rc.mua (SysVinit-Service)
usr/local/emhttp/plugins/mua/mua.page (WebGUI-Tab)
install/doinst.sh (läuft nach Installation)
===========================================
-->
<FILE Name="/boot/config/plugins/&name;/mua-2026.08.18.r006-x86_64-1.txz" Run="upgradepkg --install-new" Mode="755" Min="7.0.0">
<URL>&txzURL;</URL>
<SHA256>&txzSHA256;</SHA256>
</FILE>
<!--
===========================================
POST-INSTALL: Service neu starten + Health-Check
===========================================
Läuft nach Installation UND nach Update.
`restart` stoppt den Service (falls er läuft) und startet ihn neu —
funktioniert sowohl bei Erstinstallation als auch bei Update.
===========================================
-->
<FILE Run="/bin/bash">
<INLINE>
set +e
echo ""
echo " Starte MUA-Service neu..."
/etc/rc.d/rc.mua restart 2>/dev/null || true
echo ""
echo " Führe Health-Check aus..."
sleep 3
if curl -sf "http://127.0.0.1:3002/health" > /dev/null 2&gt;&amp;1; then
echo ""
echo " Health-Check: OK"
echo ""
echo "===================================================="
echo " MUA installiert und läuft auf Port 3002"
echo " Endpunkt: http://$(hostname -I | awk '{print $1}'):3002/mcp"
echo " WebGUI: Settings > MUA"
echo "===================================================="
else
echo ""
echo " WARNUNG: Health-Check fehlgeschlagen"
echo " Logs: tail -f /var/log/plugins/mua.log"
echo "===================================================="
fi
exit 0
</INLINE>
</FILE>
<!--
===========================================
UPDATE: Alte Dateien bereinigen
===========================================
-->
<FILE Run="/bin/bash" Method="update">
<INLINE>
# Service stoppen vor Update
/etc/rc.d/rc.mua stop 2>/dev/null || true
# Alte PHP-Dateien entfernen (falls vorhanden)
rm -rf &emhttpLOC;/mcp
rm -rf &emhttpLOC;/scripts
rm -f &emhttpLOC;/plugin.php
</INLINE>
</FILE>
<!--
===========================================
REMOVE: Deinstallation
===========================================
-->
<FILE Run="/bin/bash" Method="remove">
<INLINE>
echo ""
echo "===================================================="
echo " MUA - Mikes Unraid Agent"
echo " Deinstallation"
echo "===================================================="
echo ""
# 1. Service stoppen
/etc/rc.d/rc.mua stop 2>/dev/null || true
# 2. Service-Datei entfernen
rm -f /etc/rc.d/rc.mua
# 3. Binary entfernen
rm -f /usr/local/bin/mua
# 4. PHP-Helper entfernen
rm -f /usr/local/bin/unraid-docker-mcp-helper.php
# 5. Plugin-Verzeichnis entfernen
rm -rf &emhttpLOC;
# 6. Config entfernen
rm -rf &pluginLOC;
# 7. Logs entfernen
rm -f /var/log/plugins/mua.log
rm -f /var/run/mua.pid
echo ""
echo " MUA wurde deinstalliert."
echo "===================================================="
</INLINE>
</FILE>
</PLUGIN>