uptimepage

uptimepage

1 5 37
calendar_todayschedule1 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

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

Mesa: Why I built a programming language

Crackanimador - May 10

Booting ARM64 Linux in my Rust KVM Hypervisor: Debugging a Memory Issue

stjepan - Sep 6

How to Create and Distribute Rust Packages with Cargo

Sunny - Sep 1
chevron_left
676 Points43 Badges
Kiev, Ukraineuptimepage.dev
15Posts
8Comments
20Connections
Software developer with more than 20 years of experience.

Related Jobs

View all jobs →

Commenters (This Week)

3 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!