Skip to content

A lightweight, modern desktop application for real-time monitoring and management of Windows services.

License

Notifications You must be signed in to change notification settings

zenkiet/window-service-watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

App Logo

Window Service Watcher

Go Version Svelte Wails License

A lightweight, modern desktop application for real-time monitoring and management of Windows services.


โœจ Overview

Provide a seamless dashboard for developers and system admins to monitor status, track resources (CPU/RAM), and control critical services. Default configuration supports monitoring POS services, but can be adapted for any Windows service.

Key Features

Feature Description
โšก Real-time Monitoring Live status updates (Running, Stopped, Paused) with sub-second latency.
๐Ÿ“Š Resource Tracking Visual graphs for CPU usage (%) and Memory consumption (MB).
๐ŸŽฎ Service Control Start, Stop, and Restart services directly from the UI.
๐Ÿ“ฆ Smart Installation Install and update service executables/files with one click.
โš™๏ธ Configurable Simple YAML configuration for managing multiple services.
๐Ÿ”” System Tray (Coming Soon) Background operation and status notifications.

๐Ÿ“ธ Screenshots

Real-time Monitoring Configuration & Settings
Main Dashboard Settings
Service Installer OTA Updates
Install Service Update OTA

๐Ÿ—๏ธ Architecture

Built on the Clean Architecture principle, ensuring separation of concerns and maintainability.

  • Frontend: Svelte 5 + TailwindCSS for a high-performance, reactive UI.
  • Backend: Go + Wails for native Windows API interaction.
  • Bridge: Async communication via Wails runtime events (services-update).
window-service-watcher/
โ”œโ”€โ”€ internal/
โ”‚   โ”œโ”€โ”€ app/        # App lifecycle & Watcher logic
โ”‚   โ”œโ”€โ”€ config/     # Config loader (YAML)
โ”‚   โ”œโ”€โ”€ domain/     # Interfaces & DTOs
โ”‚   โ””โ”€โ”€ service/    # Windows SCM implementation
โ”œโ”€โ”€ frontend/src/   # Svelte 5 UI Components
โ”œโ”€โ”€ main.go         # Entry point
โ””โ”€โ”€ wails.json      # Wails config

โš™๏ธ Installation and Setup

Prerequisites

  • Go (v1.25+)
  • Node.js (LTS)
  • Wails CLI: go install github.com/wailsapp/wails/v2/cmd/wails@latest

๐Ÿ› ๏ธ Steps

  1. Clone & Install Dependencies

    git clone https://github.com/zenkiet/window-service-watcher.git
    cd window-service-watcher
    
    # Install backend & frontend deps
    make deps
    cd frontend && pnpm install
  2. Run in Development Mode

    wails dev
  3. Build for Production

    wails build
    # Output: ./build/bin/window-service-watcher.exe

๐Ÿš€ Usage Guide

Configuration (config.yaml)

The app auto-generates this file on first run.

services:
  - id: "550e8400-e29b-41d4-a716-446655440000" # Unique ID
    name: "Payment Gateway Service"           # Display Name
    serviceName: "PaymentSvc"                 # Actual Windows Service Name
    path: "C:\\Services\\Payment\\app.exe"    # Executable Path
    installable: true                         # Allow file updates

Dashboard Controls

  • Status Cards: (๐ŸŸข Running, ๐Ÿ”ด Stopped, ๐ŸŸก Pending).
  • Play/Stop: Toggle service state.
  • Metrics: Hover over cards to see detailed CPU/RAM history.

๐Ÿ”Œ API / Key Functions

Backend (Go)

Function Description
Startup(ctx) Initializes Service Manager connection.
Start/StopService(id) Controls specific service state.
InstallService(id, files) Updates binary files and restarts service.
GetConfig() Returns the current loaded configuration.

Frontend Events

Event Payload Description
services-update map[string]Status Real-time status stream (1Hz).

๐Ÿž Troubleshooting

โŒ Service Not Found / Error Fetching State
  • Cause: serviceName in config.yaml doesn't match the actual Windows Service name.
  • Fix: Check services.msc for the exact Service Name (not Display Name) and update config.
๐Ÿšซ Permission Denied
  • Cause: Controlling Windows services requires Administrator privileges.
  • Fix: Run the application or terminal as Administrator.
๐Ÿ“‰ Metrics Not Showing
  • Cause: The service might be running but the process ID (PID) cannot be retrieved, or monitoring is blocked.
  • Fix: Ensure the service is actually running and you have permissions to query its process information.

๐Ÿค Contributing

Contributions are welcome! Please open issues or pull requests for bug fixes, features, or improvements.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


If this project helped you, please consider supporting its development

Star the repository โญ
Share it with your network ๐Ÿ“ข

Made with โค๏ธ by ZenKiet

About

A lightweight, modern desktop application for real-time monitoring and management of Windows services.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •