Status Page
We want a way to have a status page which does not live on our infrastructure. We want to be able to host it on GitHub Pages, and have it be powered by GitHub Actions and Issues.
This is so that if we are having issues with our infra, then we can still communicate what is going on.
Fettle is the open-source status page, powered entirely by GitHub Actions, Issues, and Pages.
First of all, you need to fork this repository.
Update the urls and name in urls.cfg
file present in public > urls.cfg
file.
Google=https://google.com
Facebook=https://facebook.com
Go to src > incidents > hooks > useIncidents.tsx
file and update the url with your repository url.
Replace mehatab/fettle with your username/repo-name
https://api.github.com/repos/mehatab/fettle/issues?per_page=20&state=all&labels=incident
Go to src > services > hooks > useServices.tsx
file and update the url with your repository url.
Replace mehatab/fettle with your username/repo-name
https://raw.githubusercontent.com/mehatab/fettle/main/public/status/${key}_report.log
Go to src > services > hooks > useSystemStatus.tsx
file and update the url with your repository url.
Replace mehatab/fettle with your username/repo-name
https://raw.githubusercontent.com/mehatab/fettle/main/public/status/${key}_report.log
Then, you need to enable GitHub Pages on your forked repository. You can do this by going to Settings > Pages
and enabling it on the main
branch.
In Build and deployment section select GitHub Actions.
If you want to change the time interval of monitoring then you can change it in .github > workflows > health-check.yml
file.
update the cron time in the following line.
on:
schedule:
- cron: "0 0/12 * * *"
- Go to issues tab
- Create a new label
incident
- Create a issue
- Add the label
incident
to the issue
-
Hosting
- GitHub Pages is used for hosting the status page.
-
Monitoring
- Github Workflow will be triggered every 1 Hr (Configurable) to visit the website.
- Response status and response time is commited to github repository.
-
Incidents
- Github issue is used for incident management.
Feel free to submit pull requests and/or file issues for bugs and suggestions.