fix(mmpm): Update to MMPM v4.x CLI syntax for UI management

- Use `mmpm ui --start/--stop/--status` instead of `mmpm ui --port --host`
- MMPM v4 manages GUI via pm2, not direct execution
- Update status command to check pm2 status and get URL from mmpm
- Auto-install UI if not present when starting service

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-01-17 13:40:11 +01:00
parent f57303bdeb
commit 8c72679dea
2 changed files with 28 additions and 21 deletions

View File

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=secubox-app-mmpm PKG_NAME:=secubox-app-mmpm
PKG_VERSION:=0.2.0 PKG_VERSION:=0.2.0
PKG_RELEASE:=4 PKG_RELEASE:=5
PKG_ARCH:=all PKG_ARCH:=all
PKG_MAINTAINER:=CyberMind Studio <contact@cybermind.fr> PKG_MAINTAINER:=CyberMind Studio <contact@cybermind.fr>
PKG_LICENSE:=MIT PKG_LICENSE:=MIT

View File

@ -149,7 +149,7 @@ cmd_status() {
echo "MagicMirror2 container: RUNNING" echo "MagicMirror2 container: RUNNING"
if is_mmpm_installed; then if is_mmpm_installed; then
local version=$(lxc-attach -n "$LXC_NAME" -- $MMPM_BIN version 2>/dev/null | head -1 || echo "unknown") local version=$(run_mmpm version 2>/dev/null | head -1 || echo "unknown")
echo "MMPM installed: YES (v$version)" echo "MMPM installed: YES (v$version)"
else else
echo "MMPM installed: NO" echo "MMPM installed: NO"
@ -159,20 +159,17 @@ cmd_status() {
fi fi
echo "" echo ""
echo "=== Configuration ===" echo "=== GUI Status ==="
echo "GUI Port: $port"
echo "GUI Address: $address"
echo "GUI Enabled: $enabled"
# Check if GUI is running # Check if GUI is running via pm2
if pgrep -f "mmpm gui" >/dev/null 2>&1; then local ui_status=$(run_mmpm ui --status 2>/dev/null | grep "mmpm.ui" | grep -c "online" || echo "0")
local router_ip=$(uci -q get network.lan.ipaddr || echo "192.168.1.1") if [ "$ui_status" != "0" ]; then
echo "" local gui_url=$(run_mmpm ui --url 2>/dev/null | grep -oE 'http://[^[:space:]]+' || echo "")
echo "GUI Status: RUNNING" echo "GUI Status: RUNNING (pm2)"
echo "GUI URL: http://$router_ip:$port" echo "GUI URL: $gui_url"
else else
echo ""
echo "GUI Status: NOT RUNNING" echo "GUI Status: NOT RUNNING"
echo "Start with: /etc/init.d/mmpm start"
fi fi
} }
@ -185,7 +182,7 @@ cmd_logs() {
fi fi
} }
# Run MMPM GUI (called by procd) # Start MMPM GUI (via pm2)
cmd_service_run() { cmd_service_run() {
check_mm2_running || return 1 check_mm2_running || return 1
@ -194,19 +191,29 @@ cmd_service_run() {
return 1 return 1
fi fi
load_config log_info "Starting MMPM GUI..."
log_info "Starting MMPM GUI on port $port..." # Check if UI is installed, if not install it
local ui_status=$(run_mmpm ui --status 2>/dev/null | grep -c "mmpm.ui" || echo "0")
if [ "$ui_status" = "0" ]; then
log_info "Installing MMPM UI..."
run_mmpm ui install --yes 2>/dev/null || true
fi
# Run MMPM GUI inside container (with proper PATH for pm2/npm) # Start MMPM GUI via pm2
exec lxc-attach -n "$LXC_NAME" -- sh -c "export PATH=$NODE_PATH:\$PATH && $MMPM_BIN ui --port $port --host $address" run_mmpm ui --start
} }
# Stop MMPM GUI # Stop MMPM GUI
cmd_service_stop() { cmd_service_stop() {
# Kill mmpm gui process in container check_mm2_running || return 1
lxc-attach -n "$LXC_NAME" -- pkill -f "mmpm gui" 2>/dev/null || true
log_info "MMPM GUI stopped" if ! is_mmpm_installed; then
return 0
fi
log_info "Stopping MMPM GUI..."
run_mmpm ui --stop 2>/dev/null || true
} }
# Search modules # Search modules