A relay can hang with a 200 OK on stale JSON. Good health endpoints distinguish **process up**, **Redis reachable**, and **recent successful upstream poll**. Home-lab monitors and Compose restart policies depend on meaningful HTTP status codes—not just TCP open on port 443.
Suggested routes
GET /health/live— returns 200 if event loop responsive.GET /health/ready— checks Redis ping and upstream fetch within TTL.GET /health/metrics— optional Prometheus text for advanced users.
Status code policy
Return **503** when last good upstream sample is older than two TTL windows—site logic in stale reading debug aligns. Log upstream errors separately from client traffic per relay security.
Website integration
The Astro fetch layer may still show cached values briefly—see caching feed responses. Health endpoints help operators, not end users; configure monitors outside the public home page.