r002: Config-Port 3003→3013 (Port-Konflikt), robustes Fallback

- Config-Server wechselt auf 127.0.0.1:3013 (3003 war belegt)
- Binary: Port belegt → Warnung + weiterlaufen (kein Crash)
- mua.page: Config-Port 3013
- .txz neu gepackt, SHA256 aktualisiert
This commit is contained in:
Mikei386 committed 2026-08-18 11:17:31 +02:00
1 parent 4fbc210681
commit d84170fde7
4 files changed
+19 -9

No files matched your search

Binary file not shown.
+2 -2
View File
@@ -8,7 +8,7 @@
<!ENTITY pluginLOC "/boot/config/plugins/&name;"> <!ENTITY pluginLOC "/boot/config/plugins/&name;">
<!ENTITY emhttpLOC "/usr/local/emhttp/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.r002-x86_64-1.txz"> <!ENTITY txzURL "http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent/raw/branch/main/dist/mua-2026.08.18.r002-x86_64-1.txz">
<!ENTITY txzSHA256 "57da68ccdb04ba8539bcc667b3666745f08aaaa6af84cab10887702950206ec2"> <!ENTITY txzSHA256 "826b76d82f2c52e7be032f9db1b363718fe974c80d6c87265f6d50ce29e156be">
]> ]>
<PLUGIN name="&name;" <PLUGIN name="&name;"
@@ -26,7 +26,7 @@
### 2026.08.18.r002 ### 2026.08.18.r002
- API-Key-Authentifizierung (Bearer-Token) für den MCP-HTTP-Endpunkt (Port 3002). /health bleibt offen. - 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. - Einstellungs-Maske im WebGUI-Tab: API-Key generieren + Tools per Checkbox aktivieren/deaktivieren.
- Config-Server auf 127.0.0.1:3003 (nur localhost) für WebGUI-Integration. - 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. - Tool-Filter: deaktivierte Tools werden in tools/list ausgeblendet und bei tools/call abgelehnt.
### 2026.08.18.r001 ### 2026.08.18.r001
- Initial release: 21 Docker, network, and system tools as MCP server over HTTP (Streamable HTTP, port 3002). - Initial release: 21 Docker, network, and system tools as MCP server over HTTP (Streamable HTTP, port 3002).
+2 -2
View File
@@ -14,13 +14,13 @@ Icon="cubes"
* A) API-Key generieren (POST /config {generate:true}) * A) API-Key generieren (POST /config {generate:true})
* B) Tools per Checkbox aktivieren/deaktivieren (POST /config {enabledTools:[...]}) * B) Tools per Checkbox aktivieren/deaktivieren (POST /config {enabledTools:[...]})
* *
* Config-Server: 127.0.0.1:3003 (nur localhost, kein Auth nötig — * Config-Server: 127.0.0.1:3013 (nur localhost, kein Auth nötig —
* WebGUI läuft auf demselben Host und ist selbst authifiziert). * WebGUI läuft auf demselben Host und ist selbst authifiziert).
*/ */
$plugin_dir = '/usr/local/emhttp/plugins/mua'; $plugin_dir = '/usr/local/emhttp/plugins/mua';
$port = 3002; $port = 3002;
$config_port = 3003; $config_port = 3013;
$pidfile = '/var/run/mua.pid'; $pidfile = '/var/run/mua.pid';
$binary = '/usr/local/bin/mua'; $binary = '/usr/local/bin/mua';
$endpoint = 'http://' . ($_SERVER['SERVER_ADDR'] ?? '127.0.0.1') . ':' . $port . '/mcp'; $endpoint = 'http://' . ($_SERVER['SERVER_ADDR'] ?? '127.0.0.1') . ':' . $port . '/mcp';
+15 -5
View File
@@ -296,11 +296,14 @@ const server = Bun.serve({
}, },
}); });
// ── Config-Server (nur localhost:127.0.0.1:3003) ─────────────────────── // ── Config-Server (nur localhost:127.0.0.1:3013) ───────────────────────
// Separater Server, nur von localhost erreichbar (WebGUI auf demselben Host). // Separater Server, nur von localhost erreichbar (WebGUI auf demselben Host).
// Kein Header-Spoofing, kein File-Permission-Problem. // Kein Header-Spoofing, kein File-Permission-Problem.
const CONFIG_PORT = Number(process.env["MUA_CONFIG_PORT"] ?? 3003); // Wenn der Port belegt ist: Warnung + weiterlaufen (MCP-Server bleibt up).
const configServer = Bun.serve({ const CONFIG_PORT = Number(process.env["MUA_CONFIG_PORT"] ?? 3013);
let configServer: ReturnType<typeof Bun.serve> | null = null;
try {
configServer = Bun.serve({
port: CONFIG_PORT, port: CONFIG_PORT,
hostname: "127.0.0.1", // nur localhost hostname: "127.0.0.1", // nur localhost
idleTimeout: 30, idleTimeout: 30,
@@ -352,10 +355,17 @@ const configServer = Bun.serve({
return Response.json({ error: "Method not allowed" }, { status: 405 }); return Response.json({ error: "Method not allowed" }, { status: 405 });
}, },
}); });
} catch (e) {
console.warn(
`[MUA] WARNUNG: Config-Server konnte nicht gestartet werden (Port ${CONFIG_PORT} belegt?). ` +
`Einstellungen über WebGUI sind nicht verfügbar. MCP-Server läuft weiter.`,
);
}
console.log( console.log(
`[MUA] ${MUA_SERVER_NAME} v${MUA_VERSION} listening on ${HOST}:${PORT} (MCP) + 127.0.0.1:${CONFIG_PORT} (config)`, `[MUA] ${MUA_SERVER_NAME} v${MUA_VERSION} listening on ${HOST}:${PORT} (MCP)` +
(configServer ? ` + 127.0.0.1:${CONFIG_PORT} (config)` : " (config: NICHT VERFÜGBAR)"),
); );
// Graceful shutdown // Graceful shutdown