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

92
scripts/diag-at-port.sh Normal file
View File

@@ -0,0 +1,92 @@
#!/bin/sh
# Alpine 5G Router AT port diagnostic (run on device to debug “No modem AT data”)
# Rev: 1 (see REVISION in repo root)
# Usage: ./diag-at-port.sh or /usr/local/bin/diag-at-port.sh
CONFIG="/etc/5g-router.conf"
AT_PORT="${AT_PORT:-/dev/ttyUSB1}"
[ -f "$CONFIG" ] && . "$CONFIG"
echo "=== Alpine 5G Router AT port diagnostic ==="
echo ""
# 1) User and permissions
echo "--- User & groups ---"
echo "User: $(id -un) (uid=$(id -u) gid=$(id -g))"
echo "Groups: $(id -Gn)"
if id -Gn | grep -q dialout; then
echo "dialout: YES (can access serial ports)"
else
echo "dialout: NO add user to dialout: adduser <user> dialout"
fi
echo ""
# 2) Serial devices
echo "--- Serial devices ---"
for d in /dev/ttyUSB* /dev/ttyACM*; do
[ -e "$d" ] || continue
ls -la "$d" 2>/dev/null
done
if ! ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null | grep -q .; then
echo "No /dev/ttyUSB* or /dev/ttyACM* found. Modem may not be in USB mode 40 or not bound."
fi
echo ""
# 3) Modem USB
echo "--- Modem (lsusb) ---"
lsusb 2>/dev/null | grep -i fibocom || echo "No Fibocom device in lsusb"
lsusb 2>/dev/null | grep -i "0e8d" || true
echo ""
# 4) Config
echo "--- Config ---"
echo "AT_PORT from config: $AT_PORT"
if [ -c "$AT_PORT" ]; then
echo " -> exists and is a character device"
else
echo " -> missing or not a character device"
fi
echo ""
# 5) Raw AT probe on each ttyUSB
echo "--- Raw AT probe (send AT, show response) ---"
for port in /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3; do
[ -c "$port" ] || continue
echo "Port $port:"
out=$(timeout 4 sh -c "
cat $port 2>/dev/null &
_p=\$!
sleep 0.3
echo -e 'AT\r' > $port 2>/dev/null
sleep 1
kill \$_p 2>/dev/null
" 2>/dev/null)
if echo "$out" | grep -q 'OK'; then
echo " -> OK (modem responded)"
else
echo " -> no OK in response (raw below)"
fi
echo "$out" | head -5 | sed 's/^/ /'
echo ""
done
if ! ls /dev/ttyUSB* 2>/dev/null | grep -q .; then
echo "No ttyUSB devices to probe."
fi
echo ""
# 6) modem-status-at.sh if present
echo "--- modem-status-at.sh ---"
if [ -x "/usr/local/bin/modem-status-at.sh" ]; then
echo "Running: /usr/local/bin/modem-status-at.sh"
out=$(timeout 20 /usr/local/bin/modem-status-at.sh 2>&1)
code=$?
echo "Exit code: $code"
echo "$out" | head -15
if [ "$code" != 0 ] || echo "$out" | grep -q '^{}$'; then
echo "... (no modem JSON or script failed)"
fi
else
echo "Not found at /usr/local/bin/modem-status-at.sh (install with scripts/install.sh)"
fi
echo ""
echo "=== End diagnostic ==="