Add web GUI, docs, scripts, and 5G router config

- Web app (Flask): status, config, firewall, logs, users, restart
- Docs: AT commands, deploy, DNS, quickstart, web GUI
- Scripts: connect, deploy, diag, healthcheck, modem-status, speedtest, status, troubleshoot
- Init and iptables: 5g-router, 5g-webgui, rules.v4
- CHANGELOG, TODO, REVISION; config and README updates
This commit is contained in:
nearxos
2026-02-02 09:38:23 +02:00
parent 1136a332b5
commit 160ad641ce
46 changed files with 4320 additions and 40 deletions

45
etc/init.d/5g-router Normal file
View File

@@ -0,0 +1,45 @@
#!/sbin/openrc-run
# Alpine 5G Router OpenRC service
# Start: run connect-5g.sh. Stop: bring down WAN interface (optional).
# Rev: 5 (see REVISION in repo root)
description="5G modem connection (connect-5g.sh)"
command="/usr/local/bin/connect-5g.sh"
command_background="yes"
output_log="/var/log/5g-router.log"
error_log="/var/log/5g-router.log"
pidfile="/run/5g-router.pid"
# connect-5g.sh runs run_once then sleep infinity so the process stays up; stop with service 5g-router stop
# Load config for WAN_IF if we need to clean up on stop
[ -f /etc/5g-router.conf ] && . /etc/5g-router.conf
WAN_IF="${WAN_IF:-eth1}"
depend() {
need net
after bootmisc
}
# Idempotent start: if already running, succeed instead of "already running" error
start() {
if [ -f "$pidfile" ] && kill -0 "$(cat "$pidfile")" 2>/dev/null; then
ebegin "Starting 5g-router"
eend 0 "Already running"
return 0
fi
ebegin "Starting 5g-router"
start-stop-daemon --start --background --pidfile "$pidfile" --make-pidfile \
--stdout "$output_log" --stderr "$error_log" \
--exec "$command"
eend $?
}
start_pre() {
return 0
}
stop_post() {
# Optionally bring down 5G interface so traffic uses other default route
ip link set "$WAN_IF" down 2>/dev/null || true
return 0
}

27
etc/init.d/5g-webgui Normal file
View File

@@ -0,0 +1,27 @@
#!/sbin/openrc-run
# Alpine 5G Router Web GUI (Flask). Login: admin/support with different permissions.
# Rev: 1 (see REVISION in repo root)
description="5G Router Web GUI (port 5000)"
command="/usr/local/share/5g-webgui/run.sh"
command_background="yes"
pidfile="/run/5g-webgui.pid"
output_log="/var/log/5g-webgui.log"
error_log="/var/log/5g-webgui.log"
depend() {
need net
after bootmisc
}
start_pre() {
if [ ! -f /usr/local/share/5g-webgui/app.py ]; then
eend 1 "Web GUI not installed at /usr/local/share/5g-webgui"
return 1
fi
if ! command -v python3 >/dev/null 2>&1; then
eend 1 "python3 not found. Install: apk add python3 py3-flask"
return 1
fi
return 0
}