Skip to content
Arian Omrani edited this page Oct 11, 2026 · 5 revisions

pulsecheck guide

pulsecheck checks your websites, TCP ports and hosts on a schedule and sends alerts through shoutrrr (Slack, Telegram, Discord, email, ntfy and many more). Everything is set in one YAML file. There is no web dashboard and nothing is committed to git; the state is one SQLite file.

Language: English · فارسی

Page What it covers
Getting started Install, first config, first run
Commands init, env, validate, test-notify, run, status, report, update
YAML reference Every key: type, default, rules, platform support, exit codes
Configuration Every YAML key, defaults, how alerts are decided
Notifications shoutrrr install, URL examples, routing
Scheduling GitHub Actions, GitLab CI, cron
Serverless Vercel and Cloudflare Workers: setup and platform limits
Design notes How it is built, what was learned, what is tested
Troubleshooting Common problems

How a run works

  1. Load pulsecheck.yml and replace ${ENV_VAR} from the environment.
  2. Skip sites checked less than their interval ago.
  3. Check the remaining sites in parallel (HTTP, TCP or ping; certificate expiry for https sites that ask for it).
  4. Compare each result with the saved state. Only a change (up → down, down → up, up → degraded …), a due reminder or a certificate warning can raise an alert.
  5. Send the alert with shoutrrr unless a maintenance window is active.
  6. Save the result and the new state.

Clone this wiki locally