A high-performance uptime monitoring system built with Bun and ClickHouse. Receive heartbeat pulses from your services, organize them into groups, track custom metrics, and get notified when things go down.
- Pulse-Based Monitoring — Services send heartbeats; missing pulses trigger alerts
- Hierarchical Groups — Organize monitors with flexible health strategies (any-up, all-up, percentage)
- Custom Metrics — Track up to 3 numeric values per monitor (player count, connections, etc.)
- Multi-Channel Notifications — Discord, Email, and Ntfy support with per-monitor control
- Real-Time Status Pages — WebSocket-powered live updates
- Self-Healing — Automatic backfill when the monitor itself recovers from downtime
wget https://github.com/Rabbit-Company/UptimeMonitor-Server/releases/latest/download/uptime-monitor.tar.xz
tar -xf uptime-monitor.tar.xz
cd uptime-monitor
sudo docker compose up -dThis starts:
- Uptime Monitor on port
3000 - ClickHouse database (internal)
Edit config.toml to add your monitors:
[[monitors]]
id = "my-api"
name = "My API"
token = "secret-token-here"
interval = 30 # Expect pulse every 30 seconds
maxRetries = 0 # Mark down immediately on miss
resendNotification = 0 # Don't resend notificationsFrom your service, send a GET request when healthy:
curl http://localhost:3000/v1/push/secret-token-hereOr with latency tracking:
curl "http://localhost:3000/v1/push/secret-token-here?latency=125"curl http://localhost:3000/v1/status/:slug| Document | Description |
|---|---|
| Configuration Guide | Complete config.toml reference |
| API Reference | All endpoints and WebSocket events |
| Notifications | Setting up Discord, Email, Ntfy |
| Groups & Strategies | Organizing monitors hierarchically |
| Custom Metrics | Tracking additional data points |
| PulseMonitor Integration | Automated monitoring from multiple regions |
- UptimeMonitor-StatusPage — Frontend status page
- PulseMonitor — Automated pulse sender for multiple protocols
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Your Services │─────▶│ Uptime Monitor │─────▶│ ClickHouse │
│ (send pulses) │ │ (Bun server) │ │ (storage) │
└─────────────────┘ └──────────────────┘ └─────────────┘
│
▼
┌──────────────────────┐
│ Notifications │
│ Discord/Email/Ntfy │
└──────────────────────┘