uptimepage

uptimepage

●1 ●13 ●48
calendar_today • schedule1 min read

Uptimepage is an open-source uptime monitor and status page, built as one self-contained Rust binary backed by Postgres and ClickHouse. Run it with docker compose up, or use the free hosted tier.

I built it because I wanted a monitor I could run as a single binary and drive entirely as code, without operating a fleet of services to do it.

What it does

  • Checks: HTTP, TCP, DNS, TLS-certificate expiry, and domain expiry, from one region or many.
  • Public status page: HTML, JSON, and RSS, per-component opt-in, incidents, maintenance windows, email and webhook subscribers.
  • Alerting across about fourteen channels: Slack, generic signed webhooks, Telegram, WhatsApp, SMS, PagerDuty, ntfy, Pushover, Discord, Google Chat, MS Teams, email. Fire once, recover, and repeat until acknowledged.
  • Incidents with a separate internal state and public phase, so you can work an incident before you publish anything.
  • Multi-region probes: each agent is the same binary in a stateless probe mode. Run your own anywhere with an org-scoped token.
  • Automation: REST API with an OpenAPI spec, a Terraform provider, and an MCP server an LLM client can query over OAuth.

A few engineering bits

  • A custom hyper and rustls client instead of a high-level one, so each result carries separate DNS, connect, TLS, and TTFB timings. About 130K checks a second on one core in the load test.
  • A single min-heap scheduler for the whole fleet rather than a timer task per monitor, so memory stays flat in fleet size.
  • ClickHouse with per-row TTL and minute and hour rollups, so dashboards never scan raw rows.

Full write-up of how it is built: https://uptimepage.dev/blog/building-an-uptime-monitor-in-rust

Free and open

The core is not paywalled. Checks, status pages, subscribers, the API, and every alert channel are in the free tier, with no card to start. It is AGPL-3.0, and it monitors itself.

Happy to answer questions about the internals or the self-host setup in the comments.

4 Comments

2 votes
1
1 vote
0
🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Data Types Across Programming Languages: What You Actually Need to Know

Ken W. Algerverified - Oct 6

Pixo Monitor

pixomonitor - Sep 13

Can Rust Make Unsafe AI Agent Actions Unrepresentable?

Ken W. Algerverified - Sep 6

Building Trust Through Transparency: Why Mifugo Added a Public Status Page

Kelvin Kiprop 1 - Aug 10

Pyintel Mem

RITESH RAJ AS - Oct 17
chevron_left
811 Points • 62 Badges
Kiev, Ukraine • uptimepage.dev
19Posts
9Comments
44Connections
Software developer with more than 20 years of experience.

Related Jobs

View all jobs →

Commenters (This Week)

19 comments
3 comments

Contribute meaningful comments to climb the leaderboard and earn badges!