From CPU usage to Docker containers, from network ports to system logs — WatchX monitors every aspect of your infrastructure in real time.
CPU (total & per-core), memory, disk, network throughput, load average, temperature, and battery — streamed every 5 seconds via WebSocket.
Sortable table of top 50 processes with CPU/memory usage, RSS, state, PID, and user information. Search and sort by any column.
See every listening port, active connection, and connection state (ESTABLISHED, TIME_WAIT, CLOSE_WAIT). Full network interface details.
Configurable alert rules with thresholds, sustained duration, and cooldowns. Notifications via email, webhook, and in-app with auto-resolve.
Real-time system log streaming with level filtering (error/warn/info/debug), full-text search, pause/resume, and color-coded entries.
Container-level visibility with CPU, RAM, network stats per container. See running/stopped status, images, ports, and resource consumption.
Filesystem mounts with usage bars, network interfaces with IP/MAC/speed, logged-in users, services status — the complete system picture.
Beautiful time-series charts with gradient fills and configurable time ranges (15m to 24h). Historical data stored in SQLite with configurable retention.
Just install, run, and monitor. Default alert rules are seeded automatically. SQLite database requires no setup. One npm run dev to start.
A dark-themed dashboard designed for 24/7 NOC operations. Every panel updates in real time via WebSocket — no polling, no delays.
| PID | Name | User | CPU % | MEM % | RSS | State |
|---|---|---|---|---|---|---|
| 1842 | node | www-data | 24.3 | 8.2 | 656 MB | running |
| 892 | postgres | postgres | 15.7 | 12.1 | 968 MB | running |
| 1204 | nginx | root | 3.1 | 2.4 | 192 MB | sleeping |
| 2501 | redis-server | redis | 1.8 | 4.5 | 360 MB | sleeping |
| 3102 | dockerd | root | 1.2 | 3.8 | 304 MB | sleeping |
| Port | Protocol | Process | PID | Address |
|---|---|---|---|---|
| 80 | tcp | nginx | 1204 | 0.0.0.0 |
| 443 | tcp | nginx | 1204 | 0.0.0.0 |
| 3001 | tcp | node | 1842 | 0.0.0.0 |
| 5432 | tcp | postgres | 892 | 127.0.0.1 |
| 6379 | tcp | redis-server | 2501 | 127.0.0.1 |
A lightweight agent on each server streams metrics over WebSocket to a central hub. The dashboard connects in real time — zero polling.
Runs on each server
Central monitoring hub
React + Tailwind + Recharts
Clone, install, run. No configuration needed — sensible defaults and auto-seeded alert rules get you monitoring instantly.
$ git clone https://github.com/Aditya-Prakash14/WatchX.git
$ cd watchx
$ npm install
$ cd agent && npm install && cd ..
$ cd frontend && npm install && cd ..
# Server
PORT=3001
HOST=0.0.0.0
# Alerting (optional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=alerts@yourcompany.com
ALERT_WEBHOOK_URL=https://hooks.slack.com/...
$ npm run dev
# Starts concurrently:
# → Server on :3001 (API + WebSocket hub)
# → Agent (collects local metrics)
# → Frontend on :5173 (Vite dev server)
#
# Open http://localhost:5173 and start monitoring!
Deploy the agent on any server — just set the WatchX server URL:
$ WATCHX_SERVER=ws://your-watchx-server:3001 node agent/
WatchX is free, open source, and self-hosted. Deploy in seconds, monitor everything, and get alerts before your users notice a problem.