Configs2026年5月9日·1 分钟阅读

Upptime — GitHub-Powered Uptime Monitor and Status Page

An open-source uptime monitor and status page powered entirely by GitHub Actions, Issues, and Pages, requiring no server or database.

Introduction

Upptime is an open-source uptime monitor and status page that runs entirely on GitHub infrastructure. It uses GitHub Actions for scheduled checks, GitHub Issues for incident tracking, and GitHub Pages for a public status page. There is no server to maintain or database to manage.

What Upptime Does

  • Monitors HTTP endpoints at configurable intervals using GitHub Actions cron jobs
  • Automatically creates and resolves GitHub Issues when downtime is detected
  • Generates a static status page deployed via GitHub Pages
  • Tracks historical uptime and response time data in the repository itself
  • Sends notifications through email, Slack, Telegram, SMS, and other channels

Architecture Overview

Upptime stores all configuration in a single .upptimerc.yml file in your GitHub repository. A scheduled GitHub Actions workflow runs every five minutes, sends HTTP requests to each configured endpoint, and commits the results as JSON and SVG badges to the repo. When a site goes down, it opens a GitHub Issue and triggers configured notification channels. The static status page is built with Svelte and deployed to GitHub Pages on each update.

Self-Hosting & Configuration

  • Fork or use the Upptime template repository on GitHub
  • Define monitored sites in .upptimerc.yml with URL, method, headers, and expected status
  • Configure notification channels (Slack, email, Telegram) via repository secrets
  • Customize the status page theme, logo, and domain in the config file
  • Adjust check frequency by modifying the GitHub Actions cron schedule

Key Features

  • Zero infrastructure cost when using GitHub's free tier for public repos
  • Full history stored as git commits, making every data point auditable
  • Supports TCP, HTTP, DNS, and ICMP monitoring types
  • Multi-language status page with internationalization support
  • Custom request headers and body for authenticated endpoint checks

Comparison with Similar Tools

  • Uptime Kuma — Self-hosted monitoring with a web dashboard; Upptime requires no server at all
  • Gatus — Go-based health checker with alerting; Upptime uses GitHub as both the runner and the data store
  • Statuspage.io — Commercial hosted status page; Upptime is free and fully open source
  • Cachet — Self-hosted PHP status page; Upptime eliminates the need for hosting by using GitHub Pages

FAQ

Q: Is Upptime really free? A: Yes. GitHub Actions provides enough free minutes for public repositories to run checks every five minutes indefinitely.

Q: Can I monitor internal or private endpoints? A: Yes, by using a self-hosted GitHub Actions runner inside your network, or by using the TCP/ICMP check types with appropriate network access.

Q: How is data stored? A: All monitoring data is committed to the repository as JSON files and SVGs. Historical data lives in git history, so it is versioned and auditable.

Q: Can I use a custom domain for the status page? A: Yes. Configure your custom domain in the GitHub Pages settings and update the CNAME record.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产