๐ Uptime Watcher
A Electron desktop application for uptime monitoring Track multiple services simultaneously with real-time updates, response time analytics, and historical data visualization
What is Uptime Watcher?โ
Uptime Watcher is a desktop application built with modern web technologies that provides monitoring capabilities for websites, APIs, servers, and network services. Unlike most monitoring tools, there's no cloud dependency or command-line interface required. You can monitor everything with ease from a GUI.
โจ Key featuresโ
| ๐ Multi-Protocol Monitoring | ๐ Real-Time Analytics | ๐ Smart Notifications |
|---|---|---|
| 14 monitor types: HTTP family (6 variants) | Live status updates | Desktop alerts for outages |
| Transport: TCP ports, ICMP ping | Response time tracking | Sound notifications |
| Network services: DNS resolution, SSL certificates | Historical data visualization | Custom alert thresholds |
| Advanced: CDN drift, replication lag, WebSocket health | Performance metrics | Status change detection |
Core capabilitiesโ
- ๐ฏ Multi-Service Monitoring: Fourteen built-in monitor types covering HTTP variants (status, headers, JSON fields, keywords, latency), DNS, SSL certificates, TCP ports, ICMP ping, CDN edge drift, replication lag, heartbeat endpoints, and WebSocket keepalive health
- โก Real-Time Updates: Live status changes with sub-second responsiveness
- ๐ Performance Analytics: Response time tracking with trend analysis
- ๐ Historical Data: Comprehensive uptime history with SQLite storage
- โ๏ธ Flexible Configuration: Customizable check intervals from 30 seconds to 30 minutes
- ๐พ Data Persistence: Local SQLite database with backup/restore functionality
- ๐ Retention Sync: Renderer settings stay aligned with orchestrator/database changes via
settings:history-limit-updated - โก Instant Manual Checks: Optimistic status updates immediately after manual monitor checks resolve
Monitor typesโ
| Category | Monitor | Primary objective | Highlights |
|---|---|---|---|
| HTTP Availability | HTTP (Website/API) | Measure general availability and response time | Handles redirects, captures response code, records latency |
| HTTP Validation | HTTP Status Code | Enforce an exact response status | Marks monitor degraded/down when status deviates from expectation |
| HTTP Content | HTTP Header Match | Validate specific response headers | Case-insensitive comparisons with retry-aware checks |
| HTTP Content | HTTP Keyword Match | Ensure body contains a keyword | Case-insensitive substring search for rapid regressions |
| HTTP Content | HTTP JSON Match | Inspect JSON payload fields | JSON path extraction with typed comparison |
| HTTP Performance | HTTP Latency Threshold | Detect slow responses | Flags degraded when latency exceeds configured threshold |
| Transport | Port (Host/Port) | Verify TCP connectivity | Connection handshake timing with configurable ports |
| Transport | Ping (Host) | Check reachability | ICMP ping with latency sampling and packet loss handling |
| Network Services | DNS (Domain Resolution) | Resolve DNS records | Supports A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR, NAPTR, SOA, TLSA, ANY |
| Security | SSL Certificate | Track TLS validity | Warns on expiry windows and handshake anomalies |
| Edge Delivery | CDN Edge Consistency | Compare edge vs origin responses | Detects drift in status/content across edge nodes |
| Data Platforms | Replication Lag | Monitor replica freshness | Compares timestamps between primary and replica endpoints |
| Application Health | Server Heartbeat | Validate custom heartbeat payloads | Status/timestamp drift analysis with JSON path extraction |
| Realtime Channels | WebSocket Keepalive | Ensure WebSocket responsiveness | Ping/pong watchdog for stalled connections |
๐ ๏ธ Technology stackโ
๐ Quick startโ
Installationโ
Option 1: Download release (Recommended)โ
# Download the latest release from GitHub
# Available for Windows, macOS, and Linux
Option 2: Build from sourceโ
# Clone the repository
git clone https://github.com/Nick2bad4u/Uptime-Watcher.git
cd Uptime-Watcher
# Install dependencies
npm install
# Start development environment
npm run electron-dev # Append flags if needed: npm run electron-dev -- --log-debug
Screenshots & demoโ
Key interface components:โ
- ๐ Main Dashboard: Real-time monitoring overview with service status across all 14 monitor types
- โ๏ธ Monitor Configuration: Easy setup for HTTP variants, TCP ports, DNS, ping, SSL certificates, CDN edge checks, replication lag, heartbeat validation, and WebSocket keepalive
- ๐ Historical Analytics: Response time graphs and uptime statistics for every monitored endpoint
- ๐ Notification System: Customizable desktop alerts for status changes across all monitor types
๐จโ๐ป Developmentโ
Development setupโ
# Start Vite dev server only
npm run dev
# Start Electron only (requires Vite to be running)
npm run electron
# Start both Vite and Electron concurrently (recommended)
npm run electron-dev # Supports flags: npm run electron-dev -- --log-debug
# Build for production
npm run build
# Package the application
npm run dist
Development prerequisitesโ
| Requirement | Version | Download |
|---|---|---|
| Node.js | 24.8+ (required) | Download |
| npm | 11.5.2+ (included with Node.js) | Docs |
| Git | Latest version | Download |
> ๐ก Tip: Check out the Developer Quick Start Guide for detailed setup instructions and architecture overview.
Monitoring recommendationsโ
For practical guidance on configuring monitors and writing tests, see our comprehensive testing documentation:
- Testing Documentation - Includes fuzzing coverage, Playwright guides, and testing best practices
Fuzzing and property-based testsโ
For running and tuning our fast-check based fuzzing suites, see:
- Fast-Check Fuzzing Coverage Guide โ docs/Testing/FAST_CHECK_FUZZING_GUIDE.md
End-to-end testing with Playwrightโ
For comprehensive testing with Playwright, including setup, configuration, and troubleshooting common issues:
- Playwright Testing Guide โ docs/Testing/PLAYWRIGHT_TESTING_GUIDE.md
IPC automation workflowโ
npm run generate:ipcโ Regenerates preload bridge typings and the channel inventory.npm run check:ipcโ Validates that generated artifacts are in sync; this command runs in CI.
Need deeper guidance? See the IPC Automation Workflow guide for examples, troubleshooting, and CI integration tips.
Architectural principlesโ
The application follows a service-oriented architecture with clear separation of concerns:
System architecture overviewโ
๐ง Core componentsโ
- ๐ฅ๏ธ Main Process (Electron): Service container with dependency injection
- ๐จ Renderer Process (React): Component-based UI with Zustand state management
- ๐ IPC Communication: Type-safe communication via contextBridge
- ๐๏ธ Database Layer: Repository pattern with SQLite and transaction safety
- ๐ก Event System: TypedEventBus for cross-service communication
- ๐ Monitoring System: Enhanced monitoring with operation correlation
๐ฏ Key design featuresโ
- ๐๏ธ Service-Oriented Architecture: Modular, testable service design
- ๐ Type Safety: Strict TypeScript with comprehensive interfaces
- ๐ Enhanced Monitoring: Race condition prevention and operation correlation
- ๐๏ธ Repository Pattern: Transactional database operations
- ๐ฏ Event-Driven: Reactive communication between services
๐ค Contributingโ
We welcome contributions from the community! Here's how you can help:
๐ฏ Ways to contributeโ
- ๐ Bug Reports: Found an issue? Open an issue
- ๐ก Feature Requests: Have an idea? Start a discussion
- ๐ง Code Contributions: Submit pull requests with improvements
- ๐ Documentation: Help improve our docs and guides
- ๐งช Testing: Help test new features and report issues
๐ Development guidelinesโ
- Fork the Repository and create a feature branch
- Follow Code Standards (TypeScript, ESLint, Prettier)
- Write Tests for new functionality
- Update Documentation for any user-facing changes
- Submit a Pull Request with a clear description
๐ Licenseโ
This project is released under the Unlicense - Public Domain
You are free to use, modify, and distribute this software for any purpose, commercial or non-commercial, without any restrictions. Credit is appreciated but not required.
Get helpโ
Last updated: October 2025 โข Version 17.4.0