https://github.com/atharvbyadav/silentpulse
A GitHub Actions-powered pulse engine to silently keep your services alive. Minimal, automated and made for makers.
https://github.com/atharvbyadav/silentpulse
automation cron-jobs github-actions keepalive ping pinger python-script serverless uptime uptime-monitor
Last synced: 7 months ago
JSON representation
A GitHub Actions-powered pulse engine to silently keep your services alive. Minimal, automated and made for makers.
- Host: GitHub
- URL: https://github.com/atharvbyadav/silentpulse
- Owner: atharvbyadav
- License: mit
- Created: 2025-07-09T19:28:13.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-07-18T09:01:07.000Z (8 months ago)
- Last Synced: 2025-07-18T09:32:44.794Z (8 months ago)
- Topics: automation, cron-jobs, github-actions, keepalive, ping, pinger, python-script, serverless, uptime, uptime-monitor
- Language: Python
- Homepage:
- Size: 120 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# β‘ SilentPulse
> A lightweight GitHub Actions-powered pulse engine to silently keep your essential services alive.
> Built by [Atharv Yadav](https://github.com/atharvbyadav)
---





---
## π§ Features (v1.1)
- π§ **Pulse Engine:** Uses GitHub Actions to periodically "pulse" (ping) your web services
- π‘ **Custom URL list:** Easily editable via `data/urls.json`
- π **CSV Logging:** Outputs detailed pulse logs to `logs/pulse-log.csv`
- π **Scheduled Execution:** Runs automatically every 30 minutes
- π οΈ **Manual Trigger Support:** You can also run it anytime from the GitHub Actions tab
- π **Minimal Dependencies:** Just Python + `requests`
---
## π How It Works
SilentPulse reads a list of URLs from `data/urls.json`, sends GET requests to each and logs:
- HTTP status code
- Response time (ms)
- Timestamp
- Error info (if failed)
---
## π¦ Project Structure
```
SilentPulse/
βββ .github/workflows/silentpulse.yml # GitHub Actions workflow
βββ data/urls.json # List of URLs to pulse
βββ logs/pulse-log.csv # Auto-generated pulse logs
βββ src/pulse.py # Core pulse script
βββ LICENSE
βββ requirements.txt # Python dependencies
βββ README.md # Youβre reading it
```
---
## βοΈ Setup
> π‘ This project runs **entirely on GitHub Actions** β no server needed.
1. **Fork or clone** this repo
2. Add your URLs to `data/urls.json`:
```json
["https://your-app-1.com", "https://your-streamlit-app.net"]
```
3. (Optional) Modify `pulse.py` or logging logic if needed
4. Push to your `main` branch
---
## π GitHub Actions
The workflow is located at `.github/workflows/silentpulse.yml`.
It runs:
- π Every 30 minutes (`0,30 * * * *`)
- β
Can also be run manually from GitHub UI
You can see your logs in the **Actions β Run SilentPulse** β `Run SilentPulse` step.
---
## π§ͺ Output Example
Console output from a pulse run:
```
[2025-07-09T20:20:08Z] https://reconx.streamlit.app => 200 (1041)ms
[2025-07-09T20:20:08Z] https://ghostpath.onrender.com => FAILED (-)ms
```
Sample CSV log:
```csv
timestamp,url,status,latency,error
2025-07-09T20:20:08Z,https://reconx.streamlit.app,200,1041,
2025-07-09T20:20:08Z,https://ghostpath.onrender.com,FAILED,,ConnectionError
```
---
## π§ Roadmap (Future Versions)
> SilentPulse is modular β features will be added incrementally.
- π Web Dashboard for uptime monitoring
- π Uptime % and pulse stats
- π Alerts (Telegram, Discord, Email)
- π Dynamic status badges
- π Public status page
- π§© Plugin system for multiple services
---
## π License
[MIT License](LICENSE)
---
## π€ Contributing
Want to extend SilentPulse? Open a PR or raise an issue.
Letβs make uptime silent and strong. π‘
---