Ship edge-activate.sh: workstation-side activation + pool verification

One-shot watcher for the workstation: probes ping.occupymedia.cc through a
reachable edge IP, flips the four hostnames after the port-forward verifies,
checks the public path for 6 minutes and auto-reverts to TUNNEL if the new
pool assignment is broken too. Retires itself if the tunnel heals first.
README updated to match.
This commit is contained in:
glass beadian 2026-10-10 21:26:54 +00:00
parent 9365b561b2
commit 161f06f1e9
2 changed files with 143 additions and 7 deletions

View file

@ -55,13 +55,20 @@ Router: forward TCP 443 (80 optional) → the CT's LAN IP.
## Activation
The workstation watcher (`edge-activate.sh`, not shipped here) probes
`ping.occupymedia.cc` through a reachable edge IP. Two consecutive 200s after
the port-forward goes live → it sets `EDGE_ENABLED=true`, flips the four
hostnames, verifies the public path for 6 minutes, and **reverts to TUNNEL
automatically** if the new pool assignment is broken too. The CT watcher then
owns ongoing failover (2 tunnel failures → ORIGIN/GREY; 3 origin failures →
TUNNEL).
The workstation watcher (`edge-activate.sh`) probes `ping.occupymedia.cc`
through a reachable edge IP. Two consecutive 200s after the port-forward goes
live → it sets `EDGE_ENABLED=true`, flips the four hostnames, verifies the
public path for 6 minutes, and **reverts to TUNNEL automatically** if the new
pool assignment is broken too. The CT watcher then owns ongoing failover (2
tunnel failures → ORIGIN/GREY; 3 origin failures → TUNNEL).
Run it from a machine that (a) has the repo `.env` with the Cloudflare token,
(b) can SSH to the CT, and (c) is OUTSIDE the affected region if you need to
distinguish "edge pool broken" from "origin unreachable":
```bash
TARGET_MODE=ORIGIN ./edge-activate.sh # or GREY for direct DNS
```
Target mode: `TARGET_MODE=ORIGIN` (default) or `TARGET_MODE=GREY` in
`watcher.env` / the activation environment.