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

38
CHANGELOG.md Normal file
View File

@@ -0,0 +1,38 @@
# Changelog
All notable changes to the Alpine 5G Router project are documented here.
## [Unreleased]
### Added
- **Config file** `/etc/5g-router.conf` (and `etc/5g-router.conf.example`) for APN, interfaces, failover, watchdog, signal logging.
- **Configurable APN and interfaces** `configure_fm350_5g.sh` and `connect-5g.sh` read from config; defaults remain CYTA/eth1/eth0.100.
- **USB mode check on boot** Scripts detect Mode 41 (7127), warn and attempt switch to Mode 40 (with modem reset).
- **Signal strength logging** Optional `LOG_SIGNAL=yes` and `WEAK_SIGNAL_CSQ` in config; logged to `/var/log/5g-router.log`.
- **Fallback to eth0** Optional `FAILOVER_ENABLED=yes` and `FAILOVER_IF=eth0` so default route uses ethernet when 5G is down.
- **Watchdog** Optional `WATCHDOG_INTERVAL` in config to re-run connection periodically.
- **Firewall rules in repo** `etc/iptables/rules.v4` for repeatable NAT/forward rules.
- **connect-5g.sh in repo** `scripts/connect-5g.sh` (installed to `/usr/local/bin/connect-5g.sh`).
- **OpenRC service in repo** `etc/init.d/5g-router` for Alpine.
- **Install script** `scripts/install.sh` deploys scripts, service, firewall, and config example to the device.
- **DNS documentation** `docs/DNS.md` for resolv.conf and dnsmasq.
- **Status script** `scripts/status-5g.sh` (modem, interface, default route, last speedtest); supports `--json`.
- **Health check script** `scripts/healthcheck-5g.sh` for Nagios/Uptime Kuma (exit 0/1).
- **Log rotation** `scripts/rotate-5g-log.sh` for `/var/log/5g-router.log` (cron-friendly; Alpine has no logrotate by default).
- **Optional speedtest cron** `scripts/speedtest-5g.sh` appends to `/var/log/speedtest-5g.log`; document cron in README.
- **Quick start** `docs/QUICKSTART.md` (clone → install → config → start).
- **Deploy / SSH doc** `docs/DEPLOY.md` for first-time SSH and key-based login.
- **Example config** `etc/5g-router.conf.example` for different carriers/interfaces.
### Changed
- **configure_fm350_5g.sh** Sources `/etc/5g-router.conf` if present; USB Mode 41 handling (warn + try switch); signal logging and weak-signal alert when enabled in config.
### Notes
- **Persist default route** Handled by running `connect-5g.sh` at boot via 5g-router service; failover adds eth0 default when 5G fails.
- **Dual-WAN / failover** Basic failover (use eth0 when 5G down) is implemented; full dual-WAN policy routing is not.
- **IPv6** Not implemented; carrier and kernel support required; can be added later.
- **Web GUI** Implemented with login (admin/support), per-page templates, and SQLite backend.
- **SQLite database** `web/data/alpine5g.db` for users, iptables_rules, and static_routes. Users migrated from `users.json` on first run; firewall rules seeded from `/etc/iptables/rules.v4` when DB is empty. Firewall and Routes GUI: list/add/edit/delete from DB; **Apply** writes iptables and runs `iptables-restore`, or runs `ip route add` for routes.