Documentation

Everything you need to get started with QuietPulse in under 5 minutes.

# Quick Start

1. Create an Account

Sign up with your email. It's free โ€” no credit card required.

2. Create a Job

In your dashboard, click "New Job" and configure:

  • โ€ขName โ€” a human-readable label (e.g. "Nightly DB Backup")
  • โ€ขExpected Interval โ€” how often the job should run (in minutes)
  • โ€ขGrace Period โ€” extra time before alerting (in minutes)

Optional: enable Wait for a second missed check-in before alerting when one missed run is acceptable. After a successful ping, the first notification waits for two expected intervals plus the grace period. The job still shows as MISSING after the first interval plus grace, and the first-ever ping alert is not delayed. Keep this off for critical jobs. See the alert timing update for an example.

3. Ping Your Heartbeat URL

After creating a job, you'll get a unique heartbeat URL. Call it after each successful run:

bash
curl -s https://quietpulse.xyz/ping/your-unique-token

4. Configure Alerts

In your dashboard, connect Telegram for direct alerts, verify an email address for email alerts, or configure a webhook for your own systems and incident platforms. You can use multiple channels together.

# Integration Examples

Crontab

Add the ping call at the end of your cron command:

crontab
# Backup every hour, ping on success
0 * * * * /usr/local/bin/backup.sh && curl -s https://quietpulse.xyz/ping/TOKEN

# Cleanup daily at 3am
0 3 * * * /usr/local/bin/cleanup.sh && curl -s https://quietpulse.xyz/ping/TOKEN2

GitHub Actions

Store the full QuietPulse ping URL in a GitHub Actions secret, then send the heartbeat after the scheduled workflow finishes successfully.

yaml
name: Nightly maintenance

on:
  schedule:
    - cron: '0 2 * * *'
  workflow_dispatch:

jobs:
  maintenance:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run maintenance
        run: ./scripts/maintenance.sh

      - name: Send heartbeat to QuietPulse
        if: success()
        uses: vadyak/quietpulse-actions@v1
        with:
          ping_url: ${{ secrets.QUIETPULSE_PING_URL }}

Action source and README: vadyak/quietpulse-actions.

Bash Script

bash
#!/bin/bash
set -e

# Your task here
pg_dump mydb > /backups/mydb_$(date +%Y%m%d).sql
gzip /backups/mydb_$(date +%Y%m%d).sql

# Ping QuietPulse on success
curl -sf https://quietpulse.xyz/ping/YOUR_TOKEN

Python

python
import requests

def my_scheduled_task():
    # ... your logic here ...
    pass

if __name__ == "__main__":
    my_scheduled_task()
    requests.get("https://quietpulse.xyz/ping/YOUR_TOKEN")

Node.js

javascript
async function runTask() {
  // ... your logic here ...
}

await runTask();
await fetch("https://quietpulse.xyz/ping/YOUR_TOKEN");

# Job Statuses

PENDING

Job created but hasn't received its first ping yet.

OK

Last ping received on time. Everything is running smoothly.

LATE

Ping is overdue but still within the grace period.

MISSING

Ping missed beyond the grace period. The first alert is sent then by default, or after a second missed interval if you enabled the optional delay after a successful ping.

DISABLED

Job is paused. No monitoring or alerts will be triggered.

# FAQ

What happens if my job fails?

If the ping doesn't arrive within the expected interval plus grace period, QuietPulse marks the job as MISSING. By default, it sends an alert through your configured channels then. If you enabled the optional second-miss setting, the first alert after a successful ping waits for two intervals plus grace; a new job that has never pinged still alerts after its first deadline.

Do I need to install anything?

No. QuietPulse works with a simple HTTP GET request. If you have curl, wget, or any HTTP client, you're good to go.

Is it free?

Yes. The free tier includes up to 5 monitored jobs with expected intervals from 1 minute. For higher job limits, see our pricing page.

What notification channels are available?

QuietPulse supports Telegram, verified email, and webhooks for your own systems or incident platform. You can configure more than one channel.