# 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. ## Install Save in your project root: # Upptime — GitHub-Powered Uptime Monitor and Status Page ## Quick Use ```bash # Use the template repository on GitHub # 1. Go to upptime/upptime and click "Use this template" # 2. Edit .upptimerc.yml with your sites # 3. GitHub Actions handles the rest sites: - name: My Website url: https://example.com - name: API url: https://api.example.com ``` ## 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 - https://github.com/upptime/upptime - https://upptime.js.org --- Source: https://tokrepo.com/en/workflows/asset-2f29c161 Author: AI Open Source