Self-hosted uptime monitoring that runs entirely on Cloudflare's edge network. No servers to maintain, no infrastructure to manage — just click deploy.
- Truly self-hosted — All data stays in your Cloudflare account. No external dependencies.
- Zero infrastructure — Runs on Cloudflare Workers + D1. No VMs, no containers, no maintenance.
- Global monitoring — Health checks run from Cloudflare's edge, giving you real external monitoring.
- Free tier friendly — Works within Cloudflare's free tier for up to ~25 monitors.
Build sophisticated monitoring without writing code:
- Multi-step scripts — Chain requests with variable extraction (login → get token → check API)
- Visual builder — Point-and-click health check configuration
- Flexible assertions — Validate status codes, response times, JSON paths, headers
- Severity levels — Mark services as degraded or down based on different conditions
Share your service status with users:
- Public status pages — Shareable URL at
/status - Monitor groups — Organize services logically (API, Web, Database)
- 90-day history — Visual uptime bars showing daily status
- Incident management — Create incidents, post updates, track resolution
Get alerted when things break:
- Multiple channels — Slack, Discord, webhooks, and browser push
- PWA support — Install Pingflare on your phone and receive native push notifications
- Per-monitor config — Choose which alerts go where
- Session-based auth — Secure login with email/password
- Role-based access — Admin, Editor, and Viewer roles
- Protected APIs — All admin endpoints require authentication
- Secure cron — Scheduled health checks use a secret token (not exposed in repo)
- Your infrastructure — Data never leaves your Cloudflare account
- Click the Deploy to Cloudflare button above
- Authorize Cloudflare to access your GitHub
- Click Deploy — Cloudflare handles the rest
- Set the cron secret (required for scheduled health checks):
- Visit your Worker URL and create an admin account
git clone https://github.com/isala404/pingflare.git
cd pingflare
bun install
wrangler login
wrangler d1 create pingflare-db
# Update wrangler.toml with your database ID
bun run build && bun run deploy
# Set the cron secret (required for scheduled health checks)
openssl rand -hex 32 | wrangler secret put CRON_SECRETbun install
bun run dev # Start dev server at localhost:5173
bun test # Run tests
bun run check # Type checking- ~25 monitors — Cloudflare's 50 subrequest limit per cron invocation
- 1-minute intervals — Minimum check frequency (Cloudflare cron limitation)
- Free tier — 100k requests/day, 10ms CPU/request
Contributions welcome! Feel free to open issues and pull requests.
MIT



