feat: weekly config backup + unified telemetry schema + fleet dashboard

- scripts/backup-config.sh: weekly router config backup to hub (SRM + OpenWrt)
  Runs via cron, exports platform-specific config, POSTs to /api/backup
  Keeps last 10 backups per device on hub

- hub/ingest.sh: fleet hub telemetry normalizer + backup receiver
  Normalises GL (openwrt) and Synology telemetry into single schema
  Adds platform field to GL telemetry for unified dashboard

- hub/dashboard.html: single-pane fleet console
  Shows all routers (GL + Synology) with scores, WAN state, GPS, uptime
  Auto-refreshes every 10s from /api/status endpoint

- 62-point checklist updated with weekly backup section 9b

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 00:18:27 +00:00
parent f15ac69925
commit 1005269239
5 changed files with 391 additions and 3 deletions
+14 -2
View File
@@ -167,14 +167,25 @@ Every Synology RT2600ac bus router MUST pass ALL sections before departing the y
- [ ] **9.1** SCP `telemetry-synology.sh` to `/usr/lib/busrouter/telemetry-synology.sh`
- [ ] **9.2** Configure `TELEMETRY_HUB` to fleet hub endpoint:
```sh
# In the script or via environment: http://167.172.237.162:8080/api/telemetry
# Default: http://167.172.237.162:8080/api/telemetry
```
- [ ] **9.3** 🔴 Add cron job (every 60s):
- [ ] **9.3** Add cron job (every 60s):
```sh
echo '* * * * * root TELEMETRY_HUB=http://167.172.237.162:8080/api/telemetry /usr/lib/busrouter/telemetry-synology.sh 2>/dev/null' | sudo tee -a /etc/crontab
```
- [ ] **9.4** Dry-run test: `sudo /usr/lib/busrouter/telemetry-synology.sh`
## 9b. Weekly Config Backup
- [ ] **9b.1** SCP `scripts/backup-config.sh` to `/usr/lib/busrouter/backup-config.sh`
- [ ] **9b.2** Add weekly cron (Sunday 03:00):
```sh
echo '0 3 * * 0 root BACKUP_HUB=http://167.172.237.162:8080 /usr/lib/busrouter/backup-config.sh 2>/dev/null' | sudo tee -a /etc/crontab
```
- [ ] **9b.3** Dry-run test: `sudo /usr/lib/busrouter/backup-config.sh`
- [ ] **9b.4** Verify backup appears on hub at `/opt/busfleet-hub/backups/<DEVICE_ID>/`
- [ ] **9b.5** 🔴 If a router dies, the most recent backup is the replacement config — never more than 7 days stale
---
## 10. Reboot & Final Verification
@@ -198,6 +209,7 @@ Every Synology RT2600ac bus router MUST pass ALL sections before departing the y
| WAN1 carrier | aiwanbal UI | Shows ISP |
| WAN2 carrier | aiwanbal UI | Shows Starlink |
| Telemetry cron | `grep telemetry /etc/crontab` | present |
| Backup cron | `grep backup /etc/crontab` | present |
| Auto-update | SRM UI → Update & Restore | Auto-check ON |
| Notifications | SRM UI → Notification | Enabled |