Track your websites uptime with GitHub Actions - no extra servers required
Why "Pluma"? In Bolognese dialect, "pluma" means being flat broke - just like the lint in your empty pockets. And this tool keeps your wallet just as empty: zero costs, zero servers.
This tool checks your websites and sends you instant notifications through Telegram, Slack, or Discord if any site becomes unreachable. No servers to maintain, no complicated setup - just GitHub Actions doing the work for you.
- No server required
- Multiple notification channels (Telegram, Slack, Discord)
- Auto-retry before marking a site as down
- Customizable check frequency
- Easy to set up and customize
-
Fork this repository
-
Edit
websites.json
with your websites and notification preferences:
{
"settings": {
"retries": 2,
"timeout": 15
},
"websites": [
{
"name": "My Company Website",
"URL": "https://mycompany.com"
},
{
"name": "My E-commerce",
"URL": "https://shop.mycompany.com"
}
],
"notifications": {
"telegram": {
"enabled": true
},
"slack": {
"enabled": false
},
"discord": {
"enabled": false
}
}
}
Settings configuration:
retries
: Number of attempts before marking a site as downtimeout
: Timeout in seconds for each request
Websites configuration:
name
: Display name that will appear in notificationsURL
: The URL to monitor
Notifications configuration:
- Set
enabled
to true for each platform you want to use
- Set up notifications:
- Enable your preferred platform(s) in the notifications section of
websites.json
- Follow the configuration guide for each platform you enabled:
- Enable your preferred platform(s) in the notifications section of
That's it! The monitoring will start automatically.
When a website becomes unreachable, you'll receive a notification like this:
⚠️ WARNING: Website My Website is not accessible.
URL: https://example.com
You can check the status of your monitoring setup using GitHub Pages. The provided index.html
will display a summary of your configuration in a nice dashboard.
To enable this feature:
- Go to repository Settings → Pages
- Select the main branch as source
- Click Save
Your dashboard will be available at: https://{your_git_username}.github.io/uptimePluma/
Live demo: https://rempairamore.github.io/uptimePluma/
Edit the cron schedule in .github/workflows/check-websites.yml
:
schedule:
- cron: '*/30 * * * *' # Example: every 30 minutes
Found a bug? Have a suggestion? Open an issue!