Downstream Consumers
Dashboard (React SPA, :80)
Redpanda :9092
Go Servers (x2, behind Caddy)
Reverse Proxy / LB
OpenWrt Router
lb
lb
offline
spool
touch
polled by
flush on reconnect
WS frame
publish
publish
publish
publish
static + /api proxy
SSE /api/events/stream
REST /api/command
queued if offline
WebSocket :3843
WebSocket send
client2server-unified.lua
/etc/hotplug.d/{wireless,dhcp}/* scripts
wifi_connected / disconnected
dhcp_lease_new / expire
wan_link / dhcp events
Command Executor
Shared buffer
/var/run/client2server/buffer
wake file
/var/run/client2server/wake
Caddy :80/:443 dashboard
Caddy :3843 API/WS
server1 :3843
server2 :3843
SQLite
SQLite
router-events
router-commands
Login / Overview / Routers
Events / Commands / Alerts
Any Kafka client
(LuIS, analytics, etc.)