Back to projects
PHP ★ pinned Active · new

NetPulse

MikrotikExe/netpulse

Modern self-hosted network monitoring and mapping in PHP — a successor to The Dude by MikroTik. Live ICMP/TCP/SNMP monitoring, interactive maps, traffic graphs and Telegram alerts.

MonitoringSNMPICMP / fpingSVG mapyTelegramThe Dude import

Overview

NetPulse renders a network as interactive SVG maps (devices, links, sub-maps), monitors availability in real time, shows live Rx/Tx traffic per interface with utilisation-based link colours, records traffic history into graphs and sends Telegram alerts — all from a single PHP app you run on your own server. It can import an existing The Dude database (dude.db), so there is no need to rebuild the topology from scratch, and maps, devices and links can be edited directly in the browser.

Key features

  • Interactive SVG maps — devices, links and sub-maps, faithful to the original Dude layout
  • One-click import from an existing The Dude database (maps, devices, icons, probes, links, SNMP profiles)
  • Live monitoring with three-state status (up / pending / down) — fast parallel ICMP via fping with a TCP-connect fallback
  • Real per-interface traffic from SNMP (64-bit counters with 32-bit fallback) shown as live Rx/Tx on each link
  • Utilisation-based link colours across a full spectrum (blue -> green -> yellow -> orange -> red)
  • Traffic history graphs per link in a dedicated Graphs section
  • Native Telegram notifications, fully configurable in the UI
  • User roles (administrator / admin / user), backup and restore, editing maps directly in the browser
  • UI in 6 languages, light / dark / auto theme, responsive layout with touch controls

Tech & architecture

Plain PHP 8.1+ with PDO (SQLite by default, MySQL optional) and a JavaScript SPA frontend that renders maps as SVG. Monitoring runs as CLI workers — an availability monitor (cron or a looping systemd service) and an SNMP traffic poller with a built-in loop. Includes a reverse-engineered parser for The Dude binary object blobs used by the importer. Telegram messages are sent natively from PHP, without shelling out to wget or curl.

Project structure

index.php / api.php — SPA shell + JSON API
assets/             — frontend SPA, i18n (6 languages), themes
DudeParser.php      — parser for The Dude binary blobs
monitor.php         — availability worker (ICMP / TCP)
snmp_poll.php       — SNMP traffic poller (loop worker)

Requirements

  • PHP 8.1+ with PDO (SQLite or MySQL) and a web server — nginx + php-fpm recommended
  • fping for ICMP checks (optional, TCP fallback available) and net-snmp tools or the PHP snmp extension for traffic