An open API service indexing awesome lists of open source software.

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.

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)

---

![SilentPulse Status](https://github.com/atharvbyadav/SilentPulse/actions/workflows/silentpulse.yml/badge.svg)
![Last Commit](https://img.shields.io/github/last-commit/atharvbyadav/SilentPulse)
![Repo Size](https://img.shields.io/github/repo-size/atharvbyadav/SilentPulse)
![Stars](https://img.shields.io/github/stars/atharvbyadav/SilentPulse?style=social)
![Uptime](https://img.shields.io/badge/Uptime-Operational-brightgreen?style=flat-square&logo=heartbeat)

---

## πŸ”§ 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. πŸ’‘

---