netbird: reverse-proxy watchdog (self-heal dead-route 502s) #93

Merged
k.renner merged 2 commits from worktree-netbird-proxy-watchdog into master 2026-07-02 13:27:33 +00:00
2 Commits
Author SHA1 Message Date
k.rennerandClaude Fable 5 8eca54577d fix(netbird-watchdog): probe home+immich, require all domains down
status.renner.uno will move off-cluster, so it's a bad canary. Probe two
permanently cluster-hosted domains instead and count a round as failed
only when EVERY domain fails: one dead backend 502s on its own domain,
while the dead-route state kills all domains at once — this keeps single
app outages from restarting the proxy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 09:25:46 +02:00
k.rennerandClaude Fable 5 edf5362015 feat(netbird): reverse-proxy watchdog (self-heal dead-route 502s)
ci/woodpecker/push/deploy-netbird-server Pipeline was successful
The proxy's embedded client pins each proxied domain's route to a
routing-peer identity. netbird-ingress rollouts mint fresh identities by
design, and upstream's dns-interceptor never rebinds a route whose owning
peer is gone ('already routed by peer [...]. HA routing disabled') — the
proxy then serves only 502/timeouts until restarted (2026-07-02 outage).

Add a shared role deploying a systemd timer (1min) on both cluster
members (VPS-1, proxy-1): probe status.renner.uno through the local
proxy, restart the container after 3 consecutive 502/000 results, with a
10min cooldown against restart loops. Every probe outcome is journaled.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 07:07:43 +02:00