52e7e478e4
Synology kit-connect (SPK): - wizard.sh — one-button Keylink IT fleet setup (auto-runs on install) - www/index.html — dark-themed local dashboard (same design as busrouter) - bin/serve-dashboard.sh — busybox httpd on port 8089 with CGI endpoints - start-stop-status updated to manage dashboard alongside daemon - INFO updated: RT2600ac + RT6600ax compatibility noted - postinst now runs wizard --auto for first-time setup GL kit-connect (OpenWrt ipk): - Makefile — DEPENDS: +curl +openssh-client +tailscale - procd init — USE_PROCD=1, respawn with 5s delay - connect-daemon.sh — Tailscale + reverse SSH (same as Synology version) - connect-wizard.sh — one-button setup, idempotent, UCI config - connect-register.sh — standalone hub registration - www/kitconnect/index.html — dark-themed dashboard with wizard button - www/kitconnect/wizard.cgi — web-triggered wizard endpoint - UCI config at /etc/config/kitconnect Both platforms share: same hub protocol, same Tailscale key, same port pool. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
72 lines
1.9 KiB
Bash
Executable File
72 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PKG="kit-connect"
|
|
PKG_DIR="/var/packages/${PKG}/target"
|
|
DAEMON="${PKG_DIR}/bin/connect-daemon.sh"
|
|
DAEMON_PID="${PKG_DIR}/var/daemon.pid"
|
|
DASHBOARD="${PKG_DIR}/bin/serve-dashboard.sh"
|
|
DASHBOARD_PID="${PKG_DIR}/var/dashboard.pid"
|
|
|
|
case "$1" in
|
|
start)
|
|
mkdir -p "${PKG_DIR}/var"
|
|
|
|
# Start main daemon
|
|
if [ -f "$DAEMON_PID" ] && kill -0 "$(cat "$DAEMON_PID")" 2>/dev/null; then
|
|
echo "Daemon already running"
|
|
else
|
|
setsid "$DAEMON" &
|
|
echo $! > "$DAEMON_PID"
|
|
echo "Daemon started"
|
|
fi
|
|
|
|
# Start dashboard server (port 8089)
|
|
if [ -x "$DASHBOARD" ] && command -v busybox >/dev/null 2>&1; then
|
|
if [ -f "$DASHBOARD_PID" ] && kill -0 "$(cat "$DASHBOARD_PID")" 2>/dev/null; then
|
|
echo "Dashboard already running"
|
|
else
|
|
"$DASHBOARD" 8089 &
|
|
echo $! > "$DASHBOARD_PID"
|
|
echo "Dashboard started on port 8089"
|
|
fi
|
|
fi
|
|
;;
|
|
stop)
|
|
# Stop dashboard
|
|
if [ -f "$DASHBOARD_PID" ]; then
|
|
kill "$(cat "$DASHBOARD_PID")" 2>/dev/null
|
|
sleep 1
|
|
kill -9 "$(cat "$DASHBOARD_PID")" 2>/dev/null
|
|
rm -f "$DASHBOARD_PID"
|
|
echo "Dashboard stopped"
|
|
fi
|
|
|
|
# Stop daemon
|
|
if [ -f "$DAEMON_PID" ]; then
|
|
kill "$(cat "$DAEMON_PID")" 2>/dev/null
|
|
sleep 1
|
|
kill -9 "$(cat "$DAEMON_PID")" 2>/dev/null
|
|
rm -f "$DAEMON_PID"
|
|
echo "Daemon stopped"
|
|
fi
|
|
;;
|
|
status)
|
|
if [ -f "$DAEMON_PID" ] && kill -0 "$(cat "$DAEMON_PID")" 2>/dev/null; then
|
|
echo "Daemon: running (PID $(cat "$DAEMON_PID"))"
|
|
else
|
|
echo "Daemon: stopped"
|
|
fi
|
|
if [ -f "$DASHBOARD_PID" ] && kill -0 "$(cat "$DASHBOARD_PID")" 2>/dev/null; then
|
|
echo "Dashboard: running on port 8089 (PID $(cat "$DASHBOARD_PID"))"
|
|
exit 0
|
|
else
|
|
echo "Dashboard: stopped"
|
|
fi
|
|
[ -f "$DAEMON_PID" ] && kill -0 "$(cat "$DAEMON_PID")" 2>/dev/null && exit 0
|
|
exit 1
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|status}"
|
|
;;
|
|
esac
|