Free, on-premises availability monitoring for manufacturing IT/OT over IPv4/IPv6.
ThingConnect Pulse provides YAML-configured monitoring with live dashboard, historical rollups, and CSV export. Designed for plant IT/OT admins, production supervisors, and maintenance engineers who need reliable network device monitoring with zero external dependencies.
Value:
- Lightweight: 5-minute setup with single Windows Service installer
- Local-first: No cloud dependencies, all data stays on-premises
- Readable config: Simple YAML configuration with explicit Apply workflow
Non-Goals (v1):
- No TLS/auth UI, no WAN exposure, no localization
- Links: Complete Specification • Problem & Value • Scope & Non-Goals • Product Roadmap
- .NET 8 SDK
- Node.js 18+
# Clone repository
git clone https://github.com/MachDatum/ThingConnect.Pulse.git
cd ThingConnect.Pulse
# Backend setup
dotnet restore
dotnet build
# Frontend setup
cd thingconnect.pulse.client
npm install
cd ..
# Run backend server
cd ThingConnect.Pulse.Server
dotnet run
# Backend API: http://localhost:8080
# Run frontend (in separate terminal)
cd thingconnect.pulse.client
npm run dev
# Frontend: https://localhost:55610 (or similar port)- ThingConnect.Pulse.Server/ - ASP.NET Core backend API
- thingconnect.pulse.client/ - React frontend application
- docs/ - Technical specifications and API documentation
- ops/ - Development and deployment operations
- installer/ - Windows service installer scripts
- brand/ - Branding assets and design resources
- Product Overview - Complete project specification
- Development Plan - Implementation roadmap and parallel work streams
- API Documentation - REST API specification
- Configuration Schema - YAML configuration format
- Data Model - Entity Framework Core entities
- Rollup Algorithms - Data aggregation specifications
Build and create a professional Windows installer:
# Build installer (includes build and packaging)
.\build-installer.ps1
# Build installer without rebuilding (faster for testing)
.\build-installer.ps1 -SkipBuild
# Open installer directory after build
.\build-installer.ps1 -OpenInstallerThe installer will:
- Install to
Program Files\ThingConnect.Pulse - Create data directories in
ProgramData\ThingConnect.Pulse - Register and start
ThingConnectPulseSvcWindows service - Create Start Menu shortcuts
- Ask before deleting data on uninstall
For development and testing:
# Install as Windows service (development)
.\install-service.ps1 install
# Manage service
.\install-service.ps1 start|stop|status
# Uninstall service
.\install-service.ps1 uninstall- Installer Conventions - Windows service installation specification
- Logging Configuration - Structured logging setup and policies
The server provides REST API endpoints for configuration management and monitoring data:
# Live monitoring data
GET /api/status/live
# Historical data by endpoint
GET /api/history/endpoint/{id}
# Apply YAML configuration
POST /api/config/apply
Content-Type: text/plain
[YAML configuration content]
# List all configuration versions
GET /api/config/versions
# Download specific configuration version
GET /api/config/versions/{id}
# Settings management (internal)
GET /api/settings/{key}
POST /api/settings/{key}
# Monitoring test endpoints (development)
POST /api/test/monitoring/test-probes
POST /api/test/monitoring/test-outage-detection
POST /api/test/monitoring/test-discovery
GET /api/test/monitoring/check-results
GET /api/test/monitoring/outagesStatus: Configuration management endpoints are fully implemented and tested. Settings service provides watermark tracking for rollup jobs. Monitoring engine is operational with continuous background probing and outage detection.
- Backend Setup - Zero-to-first-run backend development
- Frontend Setup - Frontend development environment setup
- General Commands - Code formatting, testing, and build commands
- GitHub Issues - Active development tracking
- Project Board - Sprint planning and progress
priority:P1- Critical path itemspriority:P2- Important featurespriority:P3- Nice to havearea:*- Component areas (api, ui, infra, etc.)type:*- Issue types (feature, bug, ops, docs)
- Backend: ASP.NET Core 8.0, Entity Framework Core, SQLite
- Frontend: React 19, TypeScript, Vite, Chakra UI
- Monitoring: ICMP, TCP, HTTP probes with flap damping
- Data: 15-minute and daily rollups, 60-day retention
- Deployment: Windows Service with Inno Setup installer
- Network Monitoring: ✅ ICMP ping, TCP connect, HTTP status checks with concurrent execution
- Configuration: ✅ YAML-based with JSON Schema validation and version tracking
- Data Storage: ✅ SQLite with automatic 15-minute/daily rollups running every 5 minutes
- Web Interface: ✅ Real-time status dashboard with live data integration, endpoint detail pages, history view with CSV export, and responsive layout
- Configuration Management: ✅ Apply, list, and download configuration versions
- Settings Management: ✅ Key-value store with watermark tracking for rollup jobs
- Alerting: ✅ Status change detection with flap damping (2/2 thresholds)
- Outage Tracking: ✅ Automatic outage detection with start/end timestamps
- Target Discovery: ✅ CIDR range and wildcard expansion from configuration
- Deployment: Single Windows service installer
- Device Discovery: ✅ CIDR range and wildcard expansion (e.g., "10.0.0.0/24", "192.168.1.*")
- Probe Types: ✅ ICMP ping, TCP port checks, HTTP/HTTPS requests with content matching
- Status Logic: ✅ 2 failures → DOWN, 2 successes → UP (flap damping)
- Background Processing: ✅ Continuous monitoring with configurable intervals per endpoint
- Data Aggregation: ✅ 15-minute and daily rollups with UpPct, AvgRttMs, DownEvents calculations
- Data Retention: Raw data (60 days), rollups (indefinite)
- Performance: ✅ 100 concurrent probes, configurable timeouts, retry logic
- State Management: ✅ Per-endpoint success/fail streak tracking with outage detection
- Check Issues for known problems
- Review ops/dev-backend.md for troubleshooting
- See CLAUDE.md for AI development context
Copyright © ThingConnect