879f97c84382847c72e7db27e9916ac69d64200c
- docs/incident-log: mark x4078 recovered remotely via Tailscale (no physical access needed); document the recovery steps and root cause - connect-daemon.sh: remove bare `wait` that wedged the retry loop forever on the setsid'd tailscaled child — once the tunnel failed the daemon could not self-heal until the package was restarted; now the main loop falls through start_tunnel (already blocking+retrying) and restarts the whole cycle cleanly - SPK rebuilt (32839680 bytes) with the daemon fix included - Also documents the two latent lessons: (1) a field router is only inaccessible when ALL three paths fail; (2) always check Tailscale + QuickConnect before assuming a truck roll is required Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
kit-busrouter
Configuration and operational notes for the bus-fleet edge routers.
Hardware
GL.iNet GL-XE3000 (5G "Puli") running OpenWrt. LAN address 192.168.8.1, login root.
Management access
Routers are managed out-of-band over a WireGuard tunnel to the busfleet hub. Each router dials the hub and mgmt SSH is allowed inbound over the tunnel only — never exposed on the WAN.
| Item | Value |
|---|---|
| WG client interface / firewall zone | wgclient1 (proto=wgclient) |
| Router tunnel IP | 10.88.0.2/32 |
| Hub tunnel IP | 10.88.0.1 |
| Hub endpoint | 167.172.237.162:51820 (UDP) |
| Tunnel subnet | 10.88.0.0/24 |
| Inbound mgmt SSH rule | Allow-WG-mgmt-SSH — tcp/22 from 10.88.0.0/24, src zone wgclient1 |
| Hub jump key | busfleet-hub-jump (ed25519) in /etc/dropbear/authorized_keys, perms 600 |
The hub reaches a router with:
ssh -J busfleet-hub-jump root@10.88.0.2 # over the established tunnel
Docs
- docs/mgmt-tunnel-ssh.md — provisioning and troubleshooting inbound mgmt SSH over the WireGuard tunnel.
Description
Languages
Shell
78.6%
HTML
15.3%
Python
4.9%
Makefile
1.2%