Open Source • Self-Hosted • GPL-3.0

Infrastructure
Monitoring
Made Simple

Self-hosted uptime monitoring with real-time WebSocket updates, beautiful status pages, and multi-region distributed monitoring. Track HTTP, TCP, databases, and 8 more protocols.

11
Protocols
15
Themes
Monitors
<1s
Real-time

Everything You Need for Reliable Monitoring

A complete monitoring solution with real-time updates, beautiful status pages, and flexible alerting - all self-hosted and privacy-respecting.

Real-Time WebSocket

Instant status updates via WebSocket connections. No polling, no delays - see changes as they happen.

Beautiful Status Pages

15 stunning themes, responsive design, and customizable branding. Public or password-protected pages.

Hierarchical Groups

Organize monitors into nested groups with customizable health strategies: any-up, all-up, or percentage.

Custom Metrics

Track up to 3 custom numeric values per monitor. Player counts, connections, memory usage - anything you need.

Multi-Channel Alerts

Discord webhooks, email (SMTP), and Ntfy notifications. Down, still-down, and recovery alerts.

Multi-Region Monitoring

Deploy PulseMonitor agents globally for distributed monitoring. Check from multiple locations simultaneously.

Historical Data

Raw pulses for 24h, hourly aggregates for 90 days, daily aggregates forever. Powered by ClickHouse.

Hot Reload

Update configuration without restarts. Add monitors, change intervals, or modify groups on the fly.

Self-Hosted & Private

100% self-hosted. Your data stays on your infrastructure. No external dependencies or tracking.

HTTP
TCP
MySQL
Redis
ICMP
SMTP
WS
UDP
11 Protocols

Monitor Any Service

From web endpoints to databases, email servers to game servers - PulseMonitor supports 11 protocols out of the box with configurable timeouts and authentication.

HTTP / HTTPS
WebSocket
TCP / UDP
ICMP (Ping)
MySQL / MariaDB
PostgreSQL
Redis
SMTP / IMAP

Built for Scale & Reliability

A modular architecture with distributed monitoring agents, real-time WebSocket updates, and high-performance ClickHouse storage.

PulseMonitor

Distributed agents that check services and send heartbeats

Uptime Server

Central server processing pulses and managing state

ClickHouse

High-performance storage for pulses and aggregations

Status Page

Real-time dashboard with WebSocket updates

Up and Running in Minutes

Simple TOML configuration makes setup straightforward. Add monitors, groups, and status pages with just a few lines.

config.toml
# ClickHouse connection
[clickhouse]
url = "http://user:pass@clickhouse:8123/uptime_monitor"

# Define a monitor
[[monitors]]
id = "api-prod"
name = "Production API"
token = "tk_prod_api_secret"
interval = 30
maxRetries = 2
resendNotification = 12
groupId = "production"
notificationChannels = []

# Optional: Configure PulseMonitor for automated checks
[monitors.pulse.http]
method = "GET"
url = "https://api.example.com/health"
timeout = 10

# Create a group
[[groups]]
id = "production"
name = "Production Services"
strategy = "percentage"
degradedThreshold = 50
interval = 30

# Create a status page
[[status_pages]]
id = "public"
name = "Production"
slug = "public"
items = ["production"]
Live Demo

See It In Action

Check out our live status page powered by Uptime Monitor - monitoring real production services.

status.passky.org View Live Status Page
Coming Soon

Visual Configuration Editor

Upload your config.toml file and edit it through a beautiful visual interface. Export back when you're done.

Upload config.toml
Visual Editing
Export TOML