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.
Self-Hosting Overview
While Upptime is designed to run entirely on GitHub’s infrastructure, you can self-host various components for increased control, privacy, or custom requirements.What Can Be Self-Hosted
Upptime consists of several independent components:Status Page (Static Site)
Status Page (Static Site)
The status page is a static Svelte site generated by GitHub Actions and deployed to GitHub Pages. You can host it anywhere that serves static files.Generated location:
site/status-page/__sapper__/export/Self-hosting options:- Netlify
- Vercel
- Cloudflare Pages
- AWS S3 + CloudFront
- Your own web server
Monitoring Checks
Monitoring Checks
Uptime checks run as GitHub Actions workflows every 5 minutes (configurable). You can run these on your own infrastructure.Self-hosting options:
- Self-hosted GitHub Actions runners
- Custom cron jobs using the Upptime CLI
- GitLab CI/CD
- Jenkins or other CI systems
Data Storage
Data Storage
By default, all data is stored in the Git repository. You can store it elsewhere.Self-hosting options:
- Self-hosted Git server (GitLab, Gitea)
- Database backend (PostgreSQL, MySQL)
- Object storage (S3, MinIO)
- Time-series database (InfluxDB, Prometheus)
Issue Tracking
Issue Tracking
Downtime incidents create GitHub Issues. You can use alternative issue trackers.Self-hosting options:
- GitLab Issues
- Jira
- Custom webhook endpoints
Self-Hosting the Status Page
Using Netlify
Modify.github/workflows/site.yml to deploy to Netlify:
Using Vercel
Addvercel.json to your repository:
Custom Web Server
Generate the site and deploy manually:Self-Hosted GitHub Actions Runners
Run monitoring checks on your own infrastructure for:- Monitoring internal services
- Avoiding GitHub Actions usage limits
- Custom network configurations
Setup Self-Hosted Runner
- Install the runner on your server:
- Update workflows to use self-hosted runner:
.upptimerc.yml:
Using GitLab Instead of GitHub
Port Upptime to GitLab CI/CD:GitLab CI Configuration
Create.gitlab-ci.yml:
Convert Configuration
Rename.upptimerc.yml and update paths:
Custom Data Backend
Store Data in PostgreSQL
Create a custom script to replace Git storage:Custom Workflow Integration
Modify.github/workflows/uptime.yml:
Monitoring Internal Services
Self-hosted runners can monitor services that aren’t publicly accessible:Cost Considerations
GitHub (Default)
- Free tier: 2,000 Actions minutes/month
- Pro: $4/month + usage
- Team: $4/user/month + usage
- GitHub Pages: Free
Self-Hosted
- Server costs: $5-20/month (VPS)
- Maintenance: Your time
- Bandwidth: Varies by provider
- Control: Complete
Hybrid Approach
Mix GitHub and self-hosted components:Security Considerations
Migration Path
Gradually migrate to self-hosting:- Start: Full GitHub setup
- Phase 1: Self-host status page only
- Phase 2: Add self-hosted runners for internal monitoring
- Phase 3: Custom data backend if needed
- Final: Fully self-hosted if required