Monitor everything. Know instantly.
English · فارسی
PulseGuard is a local-first website and API monitoring workspace. It records real HTTP checks, tracks response time and availability, opens incidents after confirmed failures, and publishes focused status pages. It ships with an English/Persian interface, RTL support, and a local Monitoring Lab for repeatable reliability testing.
- Real website and API checks with status and optional keyword validation
- Failure and recovery confirmation, incident timelines, and activity logging
- Response-time, uptime, availability, and monitor analytics derived from stored checks
- Public status pages with selected service visibility
- Monitoring Lab with real healthy, slow, failing, and recovered HTTP targets
- Responsive dark-first interface, English/Persian localization, and RTL layout
- SQLite by default; no cloud account, Docker, Redis, or background service required
On first start, PulseGuard creates five clearly labeled local system monitors: PulseGuard API, PulseGuard Web, Lab healthy, Lab slow, and Lab failure simulator. Their measurements are real requests to the local app; no chart history or incident is invented.
The Monitoring Lab is available from the dashboard. Toggle the failure simulator to make /api/v1/lab/failing return HTTP 500. The ordinary monitoring engine then records failed checks, opens an incident after the configured failure threshold, and resolves it after the configured recovery threshold. The slow target provides a controlled response delay for latency testing.
Next.js UI
↓ REST
FastAPI API + monitoring scheduler
↓
SQLAlchemy
↓
SQLite
- Frontend: Next.js, React, TypeScript, Recharts, CSS design tokens
- Backend: FastAPI, SQLAlchemy, Alembic, HTTPX
- Storage: SQLite
- Validation: Pytest, ESLint, Next.js production build
Requirements: Python 3.11+ and Node.js 20+.
- Run setup.bat once. It installs dependencies, runs migrations, initializes local monitors, tests the backend, lints, and builds the frontend.
- Run start.bat to launch PulseGuard.
- Open
http://localhost:3000. - Run stop.bat to stop only PulseGuard-owned processes.
API documentation is available at http://localhost:8000/docs.
# Backend
.venv\Scripts\python -m pytest -q
# Frontend
cd frontend
npm run lint
npm run buildbackend/ FastAPI API, scheduler, models, migrations, tests
frontend/ Next.js application and UI
scripts/ Windows setup, start, stop, and health-check helpers
docs/ Architecture notes and real product screenshots
data/ Local SQLite database created at runtime
PulseGuard supports English and Persian. Persian uses RTL layout, localized dates and numbers where appropriate, while technical values such as URLs and HTTP status codes remain exact.
PulseGuard is designed for local-first use. User-created monitor URLs are validated to reduce SSRF risk and reject private/local destinations. Local endpoints are reserved for the built-in system monitors and Monitoring Lab. Do not place secrets in repository files or monitor headers that should not be visible locally.
See CONTRIBUTING.md. Security guidance is in SECURITY.md.
MIT. See LICENSE.
Ali.D · @Alivexor



