A lightweight Node.js network monitoring dashboard with real-time updates, SQLite storage, and a modern web UI.
BeanPing continuously pings your nodes, stores results, and gives you a live dashboard of latency, packet loss, and jitter. It also includes problem node detection, database backup/restore, and more.
Version 1.2.0 introduces major improvements to networking, automation, and webhooks, along with UI enhancements.
- ✅ IPv6 tested and fully working
- 🔔 Fixed update notification system
- 💾 Automatic database backup scheduling
- ✏️ Edit node settings directly from the node view page
- ⏱️ Time-stamped webhook events
- ✏️ Edit existing webhooks
- 🌍 Global and per-node webhook configuration
- ⏸️ Pause / resume webhooks
- 📡 Monitors nodes by pinging them 10 times per minute
- ⏱️ Tracks latency, packet loss, and jitter
⚠️ Highlights problem nodes automatically (threshold detection)- 📊 Dashboard + per-node stats + compare view
- 💾 Local SQLite database (easy backup/restore)
- 🔌 Real-time updates using WebSockets (Socket.IO)
- 🔒 Runs as a systemd service on Linux
/root — the service user
cannot access it.
Recommended locations: /srv/beanping,
/opt/beanping, or
/home/youruser/beanping.
cd /srv
git clone https://github.com/beanman109/beanping.git
cd beanpingchmod +x install.sh
./install.shThe installer will:
- Create a dedicated service user
beanping - Install dependencies (
node,sqlite3,traceroute,mtr) - Run
npm install --production - Create an empty
monitor.dbif needed - Create + enable a systemd service (
beanping.service)
Once installed, BeanPing will run automatically as a background service.
-
Access the dashboard:
👉 http://localhost:3000 -
Manage the systemd service:
systemctl start beanping
systemctl stop beanping
systemctl restart beanping
systemctl status beanping
journalctl -u beanping -fTo pull updates from GitHub and restart:
cd /srv/beanping
git pull
npm install --production
systemctl restart beanping-
Service fails with
Permission denied
→ Make sure the repo is not under/root; move it to/srv/beanpingor/opt/beanping. -
Missing database error
→ Create one (installer normally does this):touch /srv/beanping/monitor.db chown beanping:beanping /srv/beanping/monitor.db
-
Cannot find module xxx
→ Runnpm install --productionin the repo folder.
