Upptime uses GitHub Actions workflows to automate uptime monitoring, status page generation, and reporting. All workflows are automatically generated based on yourDocumentation 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.
.upptimerc.yml configuration.
Overview
Upptime creates several GitHub Actions workflows in.github/workflows/ directory:
- uptime.yml - Checks site status every 5 minutes
- response-time.yml - Records response times daily
- graphs.yml - Generates response time graphs daily
- site.yml - Builds and deploys the status page
- summary.yml - Updates the README with status summary
- setup.yml - Runs when you update
.upptimerc.yml - updates.yml - Keeps Upptime updated to the latest version
Uptime CI Workflow
The primary workflow that monitors your sites.Schedule
By default, sites are checked every 5 minutes. This is the fastest interval GitHub Actions supports.
The actual run time may be delayed by a few minutes during high-traffic periods on GitHub.
What it does
- Checks out your repository
- Pings each site in your
sitesconfiguration - Records response time and status
- Opens/closes GitHub Issues for incidents
- Commits status changes to git history
Triggering manually
You can trigger the uptime check manually:- Click Actions in your repository
- Select Uptime CI workflow
- Click Run workflow
Response Time CI Workflow
Records response times for historical graphs.What it does
- Measures response time for each site
- Commits data to the
history/directory - Updates response time statistics in
api/directory
Graphs CI Workflow
Generates response time graphs from historical data.What it does
- Reads historical response time data
- Generates PNG graphs for each site
- Saves graphs to
graphs/directory - Commits graphs to repository
Static Site CI Workflow
Builds and deploys your status page.What it does
- Generates the status page using Svelte
- Exports static HTML/CSS/JS
- Deploys to GitHub Pages
Custom Domain Setup
If you’re using a custom domain:- Add your domain to
status-website.cnamein.upptimerc.yml - Create a CNAME record pointing to
your-username.github.io - Wait for DNS propagation (can take up to 24 hours)
Summary CI Workflow
Updates your repository README with current status.What it does
- Reads current status of all sites
- Generates a status table
- Updates the README.md file
- Commits the changes
Setup CI Workflow
Runs when you modify.upptimerc.yml.
What it does
- Regenerates all workflows based on new configuration
- Updates the status page
- Regenerates graphs
- Updates README
When to trigger
This workflow automatically runs when you:- Update
.upptimerc.yml - Add or remove sites
- Change status page configuration
Updates CI Workflow
Keeps Upptime updated to the latest version.What it does
- Checks for new Upptime versions
- Updates workflow files
- Creates a pull request with changes
You can disable automatic updates by deleting the
updates.yml workflow file after the first setup.GitHub Personal Access Token
Upptime workflows require a GitHub Personal Access Token (PAT) to perform actions like creating issues and deploying to GitHub Pages.Creating a PAT
- Go to Settings > Developer settings > Personal access tokens > Tokens (classic)
- Click Generate new token (classic)
- Name it “Upptime”
- Select scopes:
repo(full control)workflow(if you want to update workflows)
- Click Generate token
- Copy the token (you won’t see it again!)
Adding to Repository
- Go to your repository Settings > Secrets and variables > Actions
- Click New repository secret
- Name:
GH_PAT - Value: Paste your token
- Click Add secret
Workflow Environment Variables
Workflows use these environment variables:GitHub Personal Access Token for authentication.
Contains all repository secrets for use in headers and authentication.
Customizing Workflow Schedules
While you can’t directly edit workflow files, you can customize schedules through your.upptimerc.yml:
Upptime automatically generates workflows based on your configuration. To change schedules, you’ll need to modify the template or fork Upptime.
Understanding Cron Syntax
Workflow schedules use cron syntax:*/5 * * * *- Every 5 minutes0 * * * *- Every hour0 0 * * *- Every day at midnight0 0 * * 0- Every Sunday at midnight
Troubleshooting Workflows
Workflow not running
Workflow not running
Check:
- GitHub Actions is enabled in repository settings
- You have a valid
GH_PATsecret - The workflow file exists in
.github/workflows/ - Your repository isn’t archived or disabled
- Go to Settings > Actions > General
- Ensure “Allow all actions” is selected
- Verify your
GH_PATis valid and has correct permissions
Workflow fails with authentication error
Workflow fails with authentication error
Error:
Resource not accessible by integrationFix:- Check that your
GH_PATsecret is set correctly - Verify the token has
repoandworkflowscopes - Regenerate the token if it’s expired
Status page not updating
Status page not updating
Check:
- Site CI workflow completed successfully
- GitHub Pages is enabled
- Correct branch is selected for GitHub Pages (usually
gh-pages)
- Go to Settings > Pages
- Set source to
gh-pagesbranch - Wait a few minutes for deployment
Changes not reflected after updating .upptimerc.yml
Changes not reflected after updating .upptimerc.yml
Fix:
- Ensure Setup CI workflow ran successfully
- Check Actions tab for any errors
- Manually trigger Setup CI if needed
- Verify your YAML syntax is correct
Workflow Limits
GitHub Actions has usage limits:- Public repositories: Unlimited minutes
- Private repositories: 2,000 minutes/month (free tier)
- Concurrent jobs: 20 for free accounts, 60 for Pro
Next Steps
Configuration Reference
Learn more about .upptimerc.yml options
Customize Status Page
Customize your status page appearance