Skip to main content

๐Ÿ“Š Uptime Watcher

Version License Electron React TypeScript Build Status Quality Gate Coverage Downloads Visitor Count GitHub Stars GitHub Forks Ask DeepWiki

A Electron desktop application for uptime monitoring Track multiple services simultaneously with real-time updates, response time analytics, and historical data visualization

Application screenshots will be added here once available

Uptime Watcher Mascot

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 updatesDesktop alerts for outages
Transport: TCP ports, ICMP pingResponse time trackingSound notifications
Network services: DNS resolution, SSL certificatesHistorical data visualizationCustom alert thresholds
Advanced: CDN drift, replication lag, WebSocket healthPerformance metricsStatus 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โ€‹

CategoryMonitorPrimary objectiveHighlights
HTTP AvailabilityHTTP (Website/API)Measure general availability and response timeHandles redirects, captures response code, records latency
HTTP ValidationHTTP Status CodeEnforce an exact response statusMarks monitor degraded/down when status deviates from expectation
HTTP ContentHTTP Header MatchValidate specific response headersCase-insensitive comparisons with retry-aware checks
HTTP ContentHTTP Keyword MatchEnsure body contains a keywordCase-insensitive substring search for rapid regressions
HTTP ContentHTTP JSON MatchInspect JSON payload fieldsJSON path extraction with typed comparison
HTTP PerformanceHTTP Latency ThresholdDetect slow responsesFlags degraded when latency exceeds configured threshold
TransportPort (Host/Port)Verify TCP connectivityConnection handshake timing with configurable ports
TransportPing (Host)Check reachabilityICMP ping with latency sampling and packet loss handling
Network ServicesDNS (Domain Resolution)Resolve DNS recordsSupports A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR, NAPTR, SOA, TLSA, ANY
SecuritySSL CertificateTrack TLS validityWarns on expiry windows and handshake anomalies
Edge DeliveryCDN Edge ConsistencyCompare edge vs origin responsesDetects drift in status/content across edge nodes
Data PlatformsReplication LagMonitor replica freshnessCompares timestamps between primary and replica endpoints
Application HealthServer HeartbeatValidate custom heartbeat payloadsStatus/timestamp drift analysis with JSON path extraction
Realtime ChannelsWebSocket KeepaliveEnsure WebSocket responsivenessPing/pong watchdog for stalled connections

๐Ÿ› ๏ธ Technology stackโ€‹

Frontend Architectureโ€‹

React TypeScript Tailwind CSS Vite

Desktop Frameworkโ€‹

Electron Node.js

State & Data Managementโ€‹

Zustand SQLite

Development & Qualityโ€‹

Vitest ESLint Prettier

๐Ÿš€ Quick startโ€‹

Installationโ€‹

# Download the latest release from GitHub
# Available for Windows, macOS, and Linux

๐Ÿ‘‰ Download Latest Release

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โ€‹

Application screenshots and demo videos will be added in future releases.

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โ€‹

RequirementVersionDownload
Node.js24.8+ (required)Download
npm11.5.2+ (included with Node.js)Docs
GitLatest versionDownload

> ๐Ÿ’ก 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:

Fuzzing and property-based testsโ€‹

For running and tuning our fast-check based fuzzing suites, see:

End-to-end testing with Playwrightโ€‹

For comprehensive testing with Playwright, including setup, configuration, and troubleshooting common issues:

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โ€‹

  1. Fork the Repository and create a feature branch
  2. Follow Code Standards (TypeScript, ESLint, Prettier)
  3. Write Tests for new functionality
  4. Update Documentation for any user-facing changes
  5. Submit a Pull Request with a clear description

๐Ÿ“„ Licenseโ€‹

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โ€‹

GitHub Issues Documentation


Made with โค๏ธ by Nick2bad4u

Last updated: October 2025 โ€ข Version 17.4.0