A real-time network monitoring dashboard built with Django and Celery for monitoring network devices and services with ICMP ping checks.
- Real-time ICMP Ping Monitoring - Monitor network devices using pythonping
- Background Task Processing - Asynchronous monitoring with Celery & Redis
- Responsive Dashboard - Clean, professional interface with live status indicators
- OpenWISP-standard UUIDs - Database scalability with UUID primary keys
- Device Management - Add, edit, and monitor multiple network devices
- Status Tracking - Real-time online/offline status with timestamps
- Auto-refresh Dashboard - Live updates every 30 seconds
- Python 3.8+
- Redis Server
- Git
git clone https://github.com/yourusername/netpulse.git
cd netpulsepython3 -m venv netpulse_env
source netpulse_env/bin/activate # On Windows: netpulse_env\Scripts\activatepip install django celery redis pythonping django-celery-beatmacOS (using Homebrew):
brew install redis
brew services start redisUbuntu/Debian:
sudo apt update
sudo apt install redis-server
sudo systemctl start redis-serverWindows: Download and install Redis from the official website or use WSL.
python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverVisit http://127.0.0.1:8000 to access the NetPulse dashboard.
NetPulse requires three separate processes to run properly:
source netpulse_env/bin/activate
python manage.py runserversource netpulse_env/bin/activate
celery -A config worker --loglevel=infosource netpulse_env/bin/activate
celery -A config beat --loglevel=info- Access Dashboard: Navigate to
http://127.0.0.1:8000 - Add Devices: Use the Django admin panel at
http://127.0.0.1:8000/admin - Monitor Status: View real-time device status on the dashboard
- Check Logs: Monitor Celery worker logs for ping results
netpulse/
βββ config/ # Django project settings
β βββ __init__.py
β βββ celery.py # Celery configuration
β βββ settings.py # Django settings
β βββ urls.py # Main URL configuration
βββ monitoring/ # Main monitoring app
β βββ models.py # Device and monitoring models
β βββ tasks.py # Celery tasks for ping monitoring
β βββ views.py # Dashboard views
β βββ urls.py # App URL configuration
β βββ templates/ # HTML templates
βββ manage.py # Django management script
βββ README.md # This file
The project uses Redis as both message broker and result backend. Configuration is in config/settings.py:
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_TIMEZONE = "UTC"Devices use OpenWISP-standard UUID primary keys for scalability:
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)Run the built-in Django tests:
python manage.py test- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2026 NetPulse
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Built with Django web framework
- Background tasks powered by Celery
- Network monitoring using pythonping
- UI components from Bootstrap 5
- Inspired by OpenWISP network management standards
NetPulse - Keeping your network pulse in check! π