A simple method is using a Jekyll or Hugo theme designed for status pages. For example, with UptimeRobot's free plan offering a public JSON API, you can configure a static site to fetch and display this data. First, create a new repository on GitHub with a status page theme like "cstate." Then, set up a GitHub Action to periodically fetch the monitoring data and rebuild the site.
name: Update status page
on:
schedule:
- cron: '*/5 * * * *'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Fetch UptimeRobot data
run: curl -s https://api.uptimerobot.com/v2/getMonitors?api_key=${{ secrets.API_KEY }} > data/status.json
- name: Build and deploy site
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: './public'
Store your API key as a repository secret. Netlify offers similar build hooks. This setup ensures your status page is hosted independently and updates automatically from your monitoring service.
This is a public discussion. Create a free account to answer. Takes 20 seconds. No email gates.