# 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.