Skip to content

feat(zeta): alert if spore's tailnet-only ports reach the internet - #749

Merged
stackptr merged 1 commit into
mainfrom
zeta/feat-gatus-exposure-checks
Oct 26, 2026
Merged

stackptr merged 1 commit into
mainfrom
zeta/feat-gatus-exposure-checks

Conversation

@stackptr

Copy link
Copy Markdown
Owner

Adds an exposure group to Gatus on zeta: one TCP endpoint per port that spore's own services listen on but that should only be reachable over the tailnet (node-exporter 9100, nginx-exporter 9113, alloy 12345, glances 61208, homepage 8082, pocket-id 1411, oauth2-proxy 4180). Each check connects to zx.dev (spore's public A record) every 5 minutes, expects [CONNECTED] == false, and alerts in #alerts after the usual 3 failures.

zeta reaches spore's public address over the internet rather than the tailnet, so these connections go through spore's firewall like any outside client's. The daily port scan (#748) covers all ports; these catch a regression on the most likely ones within about 15 minutes. alloy is the most realistic case, since it already binds 0.0.0.0:12345.

Checked in Gatus 5.37.0's source: TCP endpoints only set Connected and record no error on a failed connect, so a dropped or refused port evaluates cleanly to false. A dropped port takes the client timeout (10s) per check, which is fine at a 5-minute interval.

The diff looks large because alejandra re-indented endpoints around the new ++; git diff -w shows the real change, about 30 lines.

To verify:

  • After deploying zeta (not done), the exposure group on status.zx.dev shows all seven as healthy

🤖 Generated with Claude Code

Gatus probes each port spore's own services listen on through its public
address every 5 minutes and alerts if one accepts a connection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stackptr
stackptr merged commit 036070d into main Oct 26, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant