A simple GitHub Actions-based website monitoring solution that checks website availability and content every 5 minutes, providing a visual dashboard with a compact list view and detailed monitor pages.
Features
Multi-Monitor Support: Monitor multiple websites from a single dashboard
Compact List View: Homepage shows all monitors at a glance with sparkline charts
Detailed Monitor Pages: Click any monitor for comprehensive status information
Monitors website availability every 5 minutes
Checks for specific keywords in website content
Maintains a 30-day history of response times and keyword status
Visual dashboard with response time charts
Slack notifications for downtime and missing keywords
Automatic updates via GitHub Pages
Configurable websites and keywords via monitors.json
Dashboard Structure
Homepage (index.html): Displays a compact list of all monitors with inline sparkline charts
Monitor Detail Page (monitor.html): Shows comprehensive information for a specific monitor
Configuration (monitors.json): Defines the monitors to track
Website Monitor
A simple GitHub Actions-based website monitoring solution that checks website availability and content every 5 minutes, providing a visual dashboard with a compact list view and detailed monitor pages.
Features
monitors.jsonDashboard Structure
index.html): Displays a compact list of all monitors with inline sparkline chartsmonitor.html): Shows comprehensive information for a specific monitormonitors.json): Defines the monitors to trackSetup Instructions
Fork this repository to your GitHub account
Configure Slack Webhook:
Add Slack Webhook to GitHub Secrets:
SLACK_WEBHOOK_URLEnable GitHub Pages:
Configure Monitors:
monitors.jsonfile in the repository rootid: Unique identifier (used in filenames)name: Display name for the monitorurl: Website URL to monitorkeyword: Text to search for in the page contentConfigure Workflow (Optional): You can also configure the website URL and keyword in the workflow file:
a. Default Configuration:
.github/workflows/website-monitor.ymlfileenvsection at the top of the fileb. Manual Run Configuration:
Usage
Once set up, the monitor will:
https://<your-username>.github.io/<repository-name>/with a compact list of all monitorsDashboard Features
Homepage
The homepage (
index.html) displays all monitors in a compact, easy-to-scan format:Monitor Detail Page
Click any monitor to see comprehensive information:
Manual Testing
You can manually trigger the monitor with custom configuration:
Troubleshooting
Contributing
Feel free to submit issues and enhancement requests!