Commit Graph

6 Commits

Author SHA1 Message Date
fbbddd2850 fix: use legacy SCP protocol (-O) for OpenWrt devices
OpenWrt busybox sshd lacks sftp-server, so scp defaults to SFTP fail.
The -O flag forces the legacy SCP/RCP protocol.
2026-07-12 23:51:43 +05:30
13301772ab docs: add installation guide and deploy:install mise task
- docs/INSTALL.md covers all 6 install methods (local SCP, package install,
  SDK build, official feeds, custom feed, Image Builder/ASU)
- deploy:install mise task: one-command SCP + service restart to an OpenWrt device
  with HOST env var support (default root@192.168.15.1)
2026-07-12 23:49:47 +05:30
7d586157f3 chore: track .omp/ harness directory 2026-07-12 23:43:36 +05:30
c6c5a04aca chore: clean up repo structure
- Add node_modules/, test-results/, e2e-report/, .omp/ to .gitignore
- Remove throwaway debug scripts (debug-pw*.js, debug-login-dom.js)
- Remove empty mock-server/ directory
- Untrack harness artifact (.omp/plans/)
- Add missing project files to git (e2e tests, Dockerfiles, tooling configs)
2026-07-12 23:42:54 +05:30
eb04a2597d feat: implement ZeroTier exit gateway switcher
Adds the luci-app-zt-gateway package: a LuCI app + rpcd/ucode backend +
shell switch script that reconfigures which remote ZeroTier node acts as
the internet exit gateway for WIBLAN clients (10.11.13.0/24).

  - Makefile (luci.mk, arch-independent)
  - UCI config skeleton with three sample gateways
  - rpcd ACL + menu entry
  - zt-gateway.uc rpcd backend exposing status / switch / health /
    drain_status / cancel_drain ubus methods
  - zt-gateway-switch shell script implementing force + graceful modes:
      * force: pre-flight ping, atomic route replace, conntrack flush,
        UCI/hotplug/rc.local persistence
      * graceful: dual-table drain using CONNMARK fwmark 0x100 at
        priority 99, background drain monitor with two-consecutive-zero
        completion and timeout-forced fallback to force
  - LuCI overview.js: gateway radio list, mode select, drain progress
    panel, cancel-drain button, health polling
  - Docker test harness (docker-compose + Dockerfile.router +
    router/gw entrypoints) exercising the switch script against real
    iproute2/iptables/conntrack on two simulated exit nodes

Verified against the harness: force switch, graceful drain to natural
completion, pre-flight blocking of unreachable gateways (force + graceful),
and drain-timeout forced fallback.
2026-06-19 02:51:21 +05:30
f6bf6e7cd4 docs: initial plan for ZeroTier exit gateway switcher
Design: .omp/plans/zerotier-gateway-switching.md — LuCI app + rpcd/ucode backend + zt-gateway-switch shell script for force / graceful-drain gateway switching on OpenWRT.
2026-06-19 00:03:09 +05:30