Checkmate is a self-hosted infrastructure monitoring tool designed for DevOps teams and system administrators who need real-time visibility into server health, uptime, and performance without vendor lock-in or expensive SaaS fees. It tracks HTTP endpoints, ping, TCP ports, SSL certificates, Docker containers, and hardware metrics via the Capture agent, delivering actionable insights through intuitive dashboards and status pages.
Built with React, MUI, Node.js, MongoDB, and Recharts, Checkmate runs on Docker and supports deployment on any Linux, Windows, or macOS server—including Raspberry Pi. It integrates with Discord, Slack, email, and webhooks for alerts, and offers public status pages with custom branding. The AGPL-3.0 license ensures full transparency and control over your monitoring data.
What You Get
- Website Monitoring - Tracks HTTP/HTTPS endpoints for availability and response time with historical performance charts and Lighthouse-based Core Web Vitals (LCP, FCP, CLS).
- Server Hardware Monitoring - Uses the Capture agent to collect real-time CPU usage, memory consumption, disk I/O, temperature, and network metrics across Linux, Windows, Mac, and Raspberry Pi.
- Docker Monitoring - Monitors container health, resource utilization, and restart events for services like nginx, PostgreSQL, and Redis.
- Ping and Port Monitoring - Validates connectivity to any IP or port with configurable intervals and failure thresholds.
- SSL Certificate Expiry Monitoring - Alerts before certificates expire and displays remaining days in the dashboard.
- Game Server Monitoring - Tracks Minecraft, CS2, and Valheim servers with live player count and availability status.
- Public Status Pages - Generates customizable, branded status dashboards to inform users of service health during outages.
- Multi-Channel Alerts - Sends notifications via email, Slack, Discord, and custom webhooks when incidents occur.
- Scheduled Maintenance Mode - Temporarily suppresses alerts during planned downtime without disabling monitors.
- JSON Query Monitoring - Validates API responses by querying JSON endpoints and checking for specific values or structure.
- Global Uptime Monitoring - Checks endpoints from 6 continents using GlobalPing to detect regional outages.
- Role-Based Access Control - Assigns Admin, Editor, and Viewer roles to team members for secure collaboration.
Common Use Cases
- Running a SaaS platform - A startup uses Checkmate to monitor API endpoints, database health, and Docker containers, sending Slack alerts to engineers during outages while displaying a public status page to customers.
- Managing a game server farm - A game hosting provider tracks Minecraft and CS2 server uptime, player counts, and resource usage across 50+ servers using the Capture agent and real-time dashboards.
- Ensuring compliance with data sovereignty - A European financial firm self-hosts Checkmate on-premises to avoid SaaS data leaks, monitoring internal services with SSL and port checks while keeping all metrics private.
- Monitoring a home lab or Raspberry Pi cluster - A hobbyist monitors CPU temperature and disk usage on 10+ Raspberry Pis running home automation and media servers, receiving email alerts during overheating events.
Under The Hood
Architecture
- Lacks a defined structure for business logic, state management, or data layers, with UI components appearing isolated and disconnected from backend systems
- No discernible use of architectural patterns like MVC or MVVM; absence of service layers or dependency injection suggests tight coupling between presentation and data
- Repository structure is underdeveloped, with no models, controllers, or test files, indicating an incomplete or placeholder codebase
Tech Stack
- Frontend built with React and TypeScript, leveraging MUI for UI components and react-i18next for internationalization
- Vite powers the build process with fast development feedback, while SWR and Axios handle data fetching and caching
- React-Redux and react-hook-form provide state management and form handling, with redux-persist enabling client-side state persistence
- Husky enforces code quality via Git hooks, though no backend or database infrastructure is present
Code Quality
- Extensive test coverage with Jest, featuring comprehensive mocking and clear separation of concerns
- Strong TypeScript typing ensures type safety across services, repositories, and data payloads
- Consistent naming, structured test organization, and robust error handling improve maintainability
- Linting and test practices are well-established, though reliance on generic error types limits error taxonomy
What Makes It Unique
- Maintenance windows are natively integrated with monitor-specific scheduling, enabling dynamic downtime planning
- Role-based access control is enforced at the service layer through typed team validation, avoiding middleware complexity
- Server-side validation schemas are auto-generated and reused, creating self-documenting API contracts
- Client-side forms use composable hooks with Zod validation to abstract complex state logic
- Log visualization employs dynamic theming and monospace formatting to preserve diagnostic clarity
- Geo-check routing is decoupled into dedicated route classes, allowing scalable endpoint expansion without controller bloat