siinghd/pulse

Website health scanner — submit a URL, get a JSON report on headers, timing, SEO

★ 0Forks 0JavaScriptGitHub ↗Compare

README

pulse

Point it at a URL, get back a report on the site's health — HTTP status, response time, security headers, basic SEO/meta checks.

What it does

  • POST /api/scan with a URL; runs a full scan (fetch + cheerio parse) and returns a JSON report
  • Saves reports to SQLite, addressable by id, with a /api/recent feed
  • Blocks scans of localhost / private IP ranges
  • Per-IP daily rate limit (25 scans/day free tier)
  • Static SPA in public/ for the dashboard

Stack

Node.js + Express + better-sqlite3 + cheerio.

Run it

npm install
npm start         # listens on $PORT (default 3090)
npm run dev       # node --watch

Notes

  • Listens on PORT env var, defaults to 3090.
  • SQLite file pulse.db is created in the project root; gitignored.
  • nginx.conf and ecosystem.config.cjs (PM2) are the deployed-host configs, kept for reference.

Contributors

siinghd

Issues