ConfigsMay 9, 2026·3 min read

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

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets