Skip to content

Open-source status page we all host

General Discussion by steveipw 28 replies 4.4K views
#11
Prague said:
How do we handle discovery?

DNS. It's always DNS.

SRV records. `_federated-status._tcp.example.com` pointing to your node. Existing infrastructure, no new discovery protocol needed. Propagates at the speed of DNS, which is fine for "I want to follow your status page."

I run DNS for half my clients. This is trivial to add.

9 #12

Following.

8 #13
nerdbann said:
SRV records

Clever. I like it. But it leaks your infrastructure topology to anyone who queries it. Fine for public status pages, not fine if I want to federate with my friend's homelab and not publish the hostname.

Alternative: peer exchange via well-known URL. `https://status.example.com/.well-known/federated-status` returns JSON with endpoint and public key. You hand that URL to someone, they subscribe.

#14
torontoeng said:
Not fine if I want to federate with my friend's homelab

Run WireGuard between you. Then the SRV record is only visible inside the tunnel. This is how I connect everything already. Problem solved, no new spec needed for privacy.

But well-known URL is still useful for public peers. Support both.

https://www.wireguard.com

#15
torontoeng said:
Well-known URL

Added to spec draft. JSON format:

{
  "endpoint": "https://status.example.com/api/v1",
  "public_key": "base64...",
  "human_name": "Yuri's Services"
}

WireGuard + SRV is out of scope for the protocol itself. Run whatever overlay you want.

I am now 600 lines of go. Gossip still not started. Weekend project becoming month project.

indentation is not optional
#16
YuriDavid said:
Weekend project becoming month project.

This is why I said simple is better. You are proving my point.

Shared Matrix room. Bot posts when your monitoring fires. Everyone sees it. No spec, no gossip, no sequence numbers. Done in an hour.

#17

I run Windows Server. Before you laugh: I have PowerShell scripts that post to Teams webhooks. Could post to Matrix too. Federation doesn't care about my OS if it's just HTTPS.

But I also have real customers who want a real status page URL, not "join this Matrix room." The protocol idea has value for that alone.

Have you tried restarting it?
#18

Latency matters for my clients in VN. If I poll peers in Europe every minute, that's traffic I pay for. Contabo (https://contabo.com) is cheap but not free. Can we make pull interval configurable per-peer, and default to 5 minutes not 1?

Also: my clients read Vietnamese and English. The protocol needs i18n on incident narrative or it's useless here.

phở at 3AM, deploy at 4
7 #19
minh1987 said:
I18n on incident narrative

Human-readable narrative is already in my optional list. Multiple languages would be:

narrative:
  en: "Database failover in progress"
  vi: "Đang chuyển đổi cơ sở dữ liệu dự phòng"

Client displays based on Accept-Language. Fallback to first listed.

Per-peer pull interval: yes. Configurable. Default 300s.

indentation is not optional
#20

What about rate limiting? If I have 200 peers and they all poll me every 5 minutes, that's 2400 requests/hour. Trivial for nginx, but what if someone sets interval to 10 seconds?

Post a reply

You need an account to reply. Log in or register to join the conversation.

Post reply Preview Save draft