NodePulse is a self-hosted network monitoring suite designed for speed and simplicity. Built on Node.js, it transforms complex infrastructure data into an intuitive, real-time dashboard. Whether you're managing a home lab or a professional server room, NodePulse provides the pulse of your network at a glance.
- 📡 Proactive Monitoring: Real-time ICMP ping and TCP port tracking (HTTP, SSH, DB) for instant status updates.
- 📺 NOC Kiosk Mode: A dedicated, auto-scaling view optimized for wall-mounted displays in Network Operations Centers.
- 📧 Instant Alerting: Integrated SMTP notifications to ensure zero-delay response when critical systems fail.
- 📊 Deep Insights: Interactive Chart.js visualizations for latency trends and historical downtime analysis.
- 🛡️ Enterprise Security: Secure authentication with Role-Based Access Control (Admin vs. Viewer).
- 📱 Responsive UI: Built with Tailwind CSS for seamless monitoring on desktop, tablet, or mobile.
- ⚙️ Zero-Config Setup: Automated SQLite initialization and a streamlined first-run setup wizard.
| Layer | Technology |
|---|---|
| Backend | Node.js, Express.js |
| Real-time | Socket.IO (WebSockets) |
| Database | SQLite via Sequelize ORM |
| Frontend | Vanilla JS, Tailwind CSS, Chart.js |
| Core Logic | Native net & ping modules |
| Auth | Bcrypt & Express-Session |
- Node.js (v18+ recommended)
- Git
-
Clone the repository
git clone https://github.com/ademmoe/NodePulse.git cd NodePulse -
Install dependencies
npm install
-
Database setup The application uses SQLite, which is file-based. The database file (
nodepulse.db) will be automatically created in the root directory on the first run. -
Start server
node index.js
-
Open your browser
- Dashboard: Visit
http://localhost:[YOUR_PORT]/(e.g.,http://localhost:3000/dashboard)
- Dashboard: Visit
-
Run the setup Visit the Admin Dashboard. There, you will find the initial setup screen. Create the initial admin user. After that, the configuration is completed and you can use NodePulse.
This project does not include a dedicated testing suite or framework. Testing is primarily manual by interacting with the application via browser.
To deploy NodePulse to a production environment:
- Build (if any): This project does not require a specific build step; it runs directly with Node.js.
- Run: Use a process manager like PM2 or Systemd to keep the
npm startprocess running in the background and to handle restarts.# Example using PM2 (install globally: npm install -g pm2) pm2 start index.js --name nodepulse pm2 save
NodePulse follows a clean, modular structure for easy customization:
NodePulse/
├── public/ # Optimized frontend assets
│ ├── index.html # Main Monitoring Hub
│ ├── kiosk.html # NOC Wall-Display Mode
│ └── setup.html # First-Run Provisioning
├── models.js # Relational Database Schema
├── index.js # Monitoring Engine & WebSocket Logic
└── nodepulse.db # Portable SQLite Database
We welcome contributions to NodePulse! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name). - Make your changes.
- Commit your changes (
git commit -m 'feat: Add new feature'). - Push to the branch (
git push origin feature/your-feature-name). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Node.js: For providing a powerful JavaScript runtime.
- Express.js: For making web application development in Node.js simple and robust.
- EJS: For elegant templating.
- Multer: For simplifying file uploads.
- SQLite: For a lightweight and serverless database solution.
bcrypt: For secure password hashing.dotenv: For managing environment variables.express-session: For session management.
- 🐛 Issues: Feel free to report bugs or suggest features on GitHub Issues.
⭐ Star this repo if you find it helpful!
Made with ❤️ by Adem Karagöz

