Refactor: PHP-Built-in-Server durch TypeScript-Binary (Bun Runtime) ersetzt

- src/*.ts: Port von mcp/*.php (helpers, tools, server)
- Bun.serve() statt php -S — production-grade HTTP, POST funktioniert
- dist/mua-1.0.0-x86_64-1.txz: Slackware-Paket (Binary + rc.mua + mua.page + PHP-Helper)
- plugin/mua.plg: .txz-Installation via upgradepkg
- scripts/rc.mua: Binary statt php -S
- scripts/mua.page: Binary-Info statt PHP-Version
- scripts/package.sh: .txz-Builder

Fix: MCP-POST-Endpunkt lieferte leeren Body (php -S Limitation).
Bun.serve() löst das Problem.
This commit is contained in:
Mikei386
2026-08-18 08:02:39 +02:00
parent 3de8cb055a
commit 7e925153fc
12 changed files with 1305 additions and 69 deletions
+7 -11
View File
@@ -3,30 +3,26 @@
# 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.
PLUGIN_DIR="/usr/local/emhttp/plugins/mua"
SERVER="$PLUGIN_DIR/mcp/server.php"
DAEMON="/usr/local/bin/mua"
PIDFILE="/var/run/mua.pid"
LOGFILE="/var/log/plugins/mua.log"
PORT=3002
PHP_BIN="/usr/bin/php"
# PHP-Binary finden (Fallback)
if [ ! -x "$PHP_BIN" ]; then
PHP_BIN=$(command -v php 2>/dev/null)
fi
start() {
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
echo " MUA läuft bereits (PID $(cat "$PIDFILE"))"
return 0
fi
if [ ! -f "$SERVER" ]; then
echo " FEHLER: Server-Datei nicht gefunden: $SERVER"
if [ ! -x "$DAEMON" ]; then
echo " FEHLER: Binary nicht gefunden: $DAEMON"
return 1
fi
# Server starten (detached)
nohup "$PHP_BIN" -S 0.0.0.0:$PORT "$SERVER" >> "$LOGFILE" 2>&1 &
MUA_PORT=$PORT nohup "$DAEMON" >> "$LOGFILE" 2>&1 &
echo $! > "$PIDFILE"
sleep 1
if kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then