Relay alerts you and your users when something breaks — through a beautiful public status page with incident management, email subscribers, and Slack alerts. One tool, zero duct tape.
Try the live demos below — latency ticks update in real time, uptime bars show tooltips on hover, and both panels stay in sync.
Built for self-hosters who want Statuspage.io quality without the SaaS bill or the second tool.
Check APIs, ports, certificate expiry, DNS resolution, and cron jobs — all from one dashboard.
Status updates stream in real time. No page reloads, no polling — powered by HTMX.
Visual history per monitor, identical to Statuspage.io — green, amber, and red daily segments.
Post incidents, add timeline updates, and mark resolved — visible on your public status page.
Double opt-in with one-click unsubscribe. Notify users when your status page changes.
Get notified instantly when monitors go down. 10-minute cooldown prevents alert storms.
No Node, no Python, no runtime dependencies. Templates and assets embedded in the binary.
Zero ops database. Back up with cp relay.db relay.db.bak. No Postgres to run.
Under 20 MB production image. No shell, no attack surface. Healthcheck built in.
httpURLs & APIstcpPorts & servicestlsCert expirydnsDNS resolutionheartbeatCron jobsSelf-hosters usually need Uptime Kuma and Statuspage.io. Relay replaces both.
| Uptime Kuma | Statuspage.io | Relay | |
|---|---|---|---|
| Self-hosted | ✓ | ✗ | ✓ |
| Public status page | ✗ | ✓ | ✓ |
| Email subscribers | ✗ | ✓ paid | ✓ |
| Incident management | ✗ | ✓ | ✓ |
| Slack / webhook alerts | ✓ | ✓ paid | ✓ |
| Docker image size | ~200 MB | — | < 20 MB |
| Free | ✓ | ✗ | ✓ |
One Docker command. No config file required. Status page at /, admin dashboard at /admin.
docker run -d \
--name relay \
--restart unless-stopped \
-p 8080:8080 \
-v relay-data:/data \
-e RELAY_SECRET=$(openssl rand -hex 16) \
-e RELAY_ADMIN_PASS=yourpassword \
ghcr.io/rohzzn/relay
Free, open source, and built for self-hosters who care about their users.
Star on GitHub