Documentation Index
Fetch the complete documentation index at: https://mintlify.com/upptime/upptime/llms.txt
Use this file to discover all available pages before exploring further.
Installation
This guide provides a comprehensive walkthrough for installing and configuring Upptime. For a faster setup, check out the Quickstart guide.Prerequisites
Before installing Upptime, you’ll need:- A GitHub account
- A public GitHub repository (for free Actions and Pages)
- Websites or APIs to monitor
Upptime works best with public repositories to take advantage of GitHub’s free tier:
- Public repos: 2,000 Actions minutes/month free
- Private repos: Limited to 3,000 minutes/month on GitHub Free (may not be sufficient)
Installation methods
You can install Upptime in two ways:Method 1: Use the template repository (recommended)
The easiest way to get started is using the Upptime template:Create from template
- Visit the Upptime template repository
- Click the green “Use this template” button
- Name your repository (e.g.,
upptime,status, oruptime-monitor) - Choose Public visibility
- Click “Create repository from template”
Method 2: Manual installation
For more control, you can set up Upptime manually:Configuration
Basic configuration
The.upptimerc.yml file is the heart of your Upptime setup. Here’s a detailed breakdown:
Repository settings
Sites to monitor
Add all the endpoints you want to monitor:name: Display name for the siteurl: Full URL to check (must includehttps://orhttp://)
Status website configuration
Use
cname for custom domains or baseUrl for the default GitHub Pages URL. Don’t use both.Advanced configuration
TCP/UDP monitoring
Monitor non-HTTP services using TCP or UDP ping:tcp-ping: TCP connection testhttp: Standard HTTP check (default)https: HTTPS check
Custom headers and authentication
Add custom headers for authentication:Expected status codes
Customize which HTTP status codes are considered “up”:Custom check intervals
By default, checks run every 5 minutes. You can customize this in the workflow files after they’re generated. Edit.github/workflows/uptime.yml:
Setting up GitHub Personal Access Token
Upptime requires a Personal Access Token (PAT) to interact with your repository:Generate token
- Go to GitHub Settings > Developer settings > Personal access tokens
- Click “Generate new token (classic)”
- Name it descriptively (e.g., “Upptime Bot”)
- Set expiration (recommend “No expiration” for continuous monitoring)
- Select required scopes:
repo- Full control of private repositoriesworkflow- Update GitHub Action workflows
- Click “Generate token”
- Copy the token immediately - you won’t see it again
Enabling GitHub Pages
Your status page is hosted on GitHub Pages:Configure Pages
- Go to repository Settings > Pages
- Under “Source”, select “Deploy from a branch”
- Under “Branch”, select
gh-pagesand/ (root) - Click “Save”
Understanding the workflows
Upptime uses several GitHub Actions workflows:Uptime CI
File:.github/workflows/uptime.ymlSchedule: Every 5 minutes
Purpose: Checks endpoint status
Response Time CI
File:.github/workflows/response-time.ymlSchedule: Daily at 11 PM UTC
Purpose: Records response times
Graphs CI
File:.github/workflows/graphs.ymlSchedule: Daily at midnight UTC
Purpose: Generates response time graphs
Static Site CI
File:.github/workflows/site.ymlSchedule: Daily at 1 AM UTC
Purpose: Builds and deploys status page
Setup CI
File:.github/workflows/setup.ymlTrigger: When
.upptimerc.yml changesPurpose: Regenerates workflows and initial setup
Workflows are auto-generated from your
.upptimerc.yml. Don’t edit them directly - they’ll be overwritten. Make changes in the config file instead.Custom domain setup
To use a custom domain likestatus.yourdomain.com:
Configure DNS
Add a CNAME record in your DNS provider:
| Type | Name | Value |
|---|---|---|
| CNAME | status | your-username.github.io |
Verification
After installation, verify everything is working:- Check Actions: Go to the Actions tab and verify workflows are running
- View status page: Visit your GitHub Pages URL
- Check history: Look for
history/*.ymlfiles being created - Monitor issues: Wait for a check cycle and ensure no error issues are opened
Next steps
Your Upptime installation is complete! Here’s what to do next:- Configure notifications for Slack, Discord, or email
- Customize your status page
- Learn about response time tracking
- Understand incident management
Troubleshooting
Workflows not running
- Ensure GitHub Actions are enabled in repository settings
- Verify the
GH_PATsecret exists and has correct permissions - Check if you’ve exceeded Actions minutes quota
Status page shows 404
- Confirm GitHub Pages is enabled and set to
gh-pagesbranch - Wait 5-10 minutes after the first deployment
- Check that “Static Site CI” workflow completed successfully
Sites incorrectly showing as down
- Verify URLs are correct and publicly accessible
- Check if sites require authentication or have IP restrictions
- Review workflow logs for specific error messages
- Consider adding custom headers or expected status codes
Token expired errors
- Personal Access Tokens can expire
- Generate a new token and update the
GH_PATsecret - Set tokens to “No expiration” for continuous operation