NetWatchdog is a modern network monitoring dashboard that:
- 🧭 Displays gateway info
- 🚀 Runs and logs speed tests every 2 minutes
- 📊 Visualizes history (Download, Upload, Ping)
- 🔎 Scans your local network for active hosts and open ports
- 💡 Mobile responsive with animated gauges and custom logo branding
| Feature | Description |
|---|---|
| 🔁 Auto Speedtest | Every 60 minutes with low-speed alert logging |
| 📈 Historical Charts | Shows separate line charts per metric |
| 🖥️ Gauge UI | Animated gauges for Download/Upload/Ping |
| 🔍 Network Scanner | Displays hosts and their open ports |
| 🧩 API | Powered by FastAPI |
| 🖼️ Branding | Custom logo and favicon support |
pip install -r requirements.txt
cd frontend
npm install# In terminal 1
uvicorn backend.main:app --reload --port 8181
# In terminal 2
cd frontend
npm startnpm run builduvicorn backend.main:app --port 8181Use NSSM to install as a service:
nssm install NetWatchdogService "python" "C:\path\to\main.py"NetWatchdog/
├── backend/
│ ├── main.py
│ ├── routes.py
│ ├── scanner.py
│ ├── speedtest_runner.py
│ └── speedtest_history.json
├── frontend/
│ ├── build/
│ ├── src/
│ │ ├── App.js
│ │ ├── App.css
│ │ └── assets/logo.svg
│ └── public/index.html
├── .gitignore
└── README.md
- React + Chart.js + react-gauge-chart
- FastAPI + subprocess for CLI speedtest
- Node + Vite for frontend
- Python 3.11+
- Some speedtest servers can hang, fallback handling is basic.
- Port scanning performance varies per network size.
Developed by Kenneth Schaesfer (@parzidog)
