Skip to content

Rabbit-Company/UptimeMonitor-Server

Repository files navigation

Uptime Monitor

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.

Features

  • 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

Quick Start

1. Start the Services

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 -d

This starts:

  • Uptime Monitor on port 3000
  • ClickHouse database (internal)

2. Configure Your Monitors

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 notifications

3. Send Pulses

From your service, send a GET request when healthy:

curl http://localhost:3000/v1/push/secret-token-here

Or with latency tracking:

curl "http://localhost:3000/v1/push/secret-token-here?latency=125"

4. Check Status

curl http://localhost:3000/v1/status/:slug

Documentation

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

Related Projects

Architecture

┌─────────────────┐      ┌──────────────────┐      ┌─────────────┐
│  Your Services  │─────▶│  Uptime Monitor  │─────▶│  ClickHouse │
│  (send pulses)  │      │   (Bun server)   │      │  (storage)  │
└─────────────────┘      └──────────────────┘      └─────────────┘
                                  │
                                  ▼
                       ┌──────────────────────┐
                       │    Notifications     │
                       │  Discord/Email/Ntfy  │
                       └──────────────────────┘

License

GPL-3.0