β AMPNM - Advanced Multi-Protocol Network Monitor (Docker Version)
Real-time network monitoring system with visual topology mapping.
β π Quick Start
Access at: http://localhost:2266β
Default Login:
Username: admin
Password: password (change in docker-compose.yml)
Stuck during download/build? See INSTALL_TROUBLESHOOTING.md for diagnostics and progress tips.
If you see unexpected EOF while pulling images, rerun docker compose pull db --progress=plain (or docker pull mysql:8) to resume the largest layer, then rerun the start command.
β πͺ Install AMPNM on Windows PC with Docker Desktop
For a seamless setup on Windows 11, you can use our PowerShell scripts or manually run the commands below.
β Manual Step-by-Step Instructions
Install Docker Desktop : Download and install Docker Desktop for Windows.
Enable WSL 2 Backend : Ensure "Use the WSL 2 based engine" is enabled during Docker Desktop setup.
Run Docker Desktop : Start the Docker Desktop application and wait until it indicates Docker is running.
Open PowerShell or Windows Terminal in the cloned repository directory:
git clone https://github.com/pranto48/ampnm.git
cd ampnm
Copy
Set Environment Variables :
Copy .env.example to .env.
Customize .env as needed.
Start AMPNM :
docker compose pull
docker compose up --build --progress=plain -d
Copy
Access the App : Open your browser at http://localhost:2266β (or the port defined in APACHE_PORT).
Login :
Username : admin
Password : password
Change default passwords : Immediately modify the default admin password (ADMIN_PASSWORD) and database passwords in your .env file for security, then run the installer again.
β Additional Windows Command Utilities
Stop services : Run .\scripts\windows-stop.ps1 to cleanly shut down containers.
Update system : Run .\scripts\windows-update.ps1 to pull changes, fetch new images, and rebuild.
Create database backup : Run .\scripts\windows-backup.ps1 to generate a timestamped SQL backup in the backups/ folder.
β π Requirements
Docker & Docker Compose
No other dependencies needed!
β β¨ Features
Real-time Monitoring : ICMP Ping, HTTP/HTTPS, TCP port checks
Network Topology Map : Visual representation with status colors
Alert System : Email notifications on status changes
Historical Data : Track performance metrics over time
Multi-User : Admin and viewer roles
License Management : Built-in licensing system
β π§ Configuration
β Environment Variables (docker-compose.yml)
environment:
MYSQL_ROOT_PASSWORD: yourSecurePassword
MYSQL_DATABASE: network_monitor
DB_USER: ampnm_user
DB_PASSWORD: yourDbPassword
ADMIN_PASSWORD: yourAdminPassword
APP_LICENSE_KEY: your-license-key
Copy
β Important Settings
MYSQL_ROOT_PASSWORD : MySQL root password
DB_PASSWORD : Application database password
ADMIN_PASSWORD : Admin user password (default: password)
APP_LICENSE_KEY : Your license key from portal
β π Monitoring Features
β Check Types
Windows Usage Agent (New Desktop Client)
Real-time CPU, RAM, and Disk metrics via Tauri desktop app
Network interface Tx/Rx tracking
Centralized status logging and process counting
Silent tray icon integration with pause options
ICMP Ping
Latency monitoring
Packet loss detection
TTL tracking
Thresholds: Warning & Critical
TCP Port Check
Port availability
Connection time
Service status
HTTP/HTTPS Check
Response code
Response time
Content verification
β Status Levels
π’ Online : Device responding normally
π‘ Warning : Latency or packet loss threshold exceeded
π΄ Critical : Severe latency, packet loss, or offline
βͺ Offline : Device unreachable
β« Unknown : No data or unconfigured
β πΊοΈ Network Topology
Drag-and-drop device placement
Connection visualization
Real-time status updates
Color-coded indicators
Custom icons and sizes
Public map sharing option
β π§ Email Notifications
Configure SMTP settings to receive alerts:
Go to Email Notifications
Enter SMTP server details
Add recipient emails per device
Choose notification triggers:
Device goes online
Device goes offline
Warning status
Critical status
β π Security
β Best Practices
Change Default Passwords
ADMIN_PASSWORD: strong_password_here
MYSQL_ROOT_PASSWORD: another_strong_password
Copy
Restrict Port Access
ports:
- "127.0.0.1:2266:80" # Only accessible from localhost
Copy
Use HTTPS (Production)
Set up reverse proxy (Nginx/Apache)
Configure SSL certificates
Enable HTTPS redirects
Regular Backups
docker exec ampnm-mysql mysqldump -u root -p network_monitor > backup.sql
Copy
β π οΈ Advanced Configuration
β Custom Ping Intervals
Set per-device:
Minimum: 10 seconds
Default: 60 seconds
Maximum: 3600 seconds (1 hour)
β Threshold Configuration
Warning Thresholds:
Latency: 100ms default
Packet Loss: 10% default
Critical Thresholds:
Latency: 300ms default
Packet Loss: 50% default
β π Docker Volumes
volumes:
mysql-data: {} # Database storage
app-uploads: {} # Icons, backgrounds, backups
Copy
β Backup Volumes
# Backup database
docker-compose exec mysql mysqldump -u root -p network_monitor > backup.sql
# Backup uploads
docker cp ampnm-app:/var/www/html/uploads ./uploads-backup
Copy
β π Updates
# Pull latest image
docker-compose pull
# Restart with new image
docker-compose down
docker-compose up -d
Copy
β Automated update helpers
# Run safe update (captures pre-update state and optional DB dump)
./scripts/auto-update.sh
# Roll back to previous version snapshot
Copy
Rollback metadata and DB backups are stored in .update-state/<timestamp>/.
β π Troubleshooting
β Ping Not Working
Issue : "sh: 1: ping: not found"
Solution : The Dockerfile has been updated to include iputils-ping. Rebuild:
docker-compose down
docker-compose build --no-cache
docker-compose up -d
Copy
β Database Connection Errors
# Check MySQL is running
docker-compose ps
# View logs
docker-compose logs mysql
docker-compose logs app
# Restart services
docker-compose restart
Copy
β Permission Issues
# Fix ownership
docker-compose exec app chown -R www-data:www-data /var/www/html
Copy
β Network Access Issues
# Check if container can ping external hosts
docker-compose exec app ping 8.8.8.8
# Check internal network
docker network inspect ampnm-network
Copy
β π οΈ Windows Docker Troubleshooting
Here are typical troubleshooting steps for common issues encountered on Windows environments:
β Docker Desktop not running
Symptom : Script reports Docker is not running or commands time out.
Fix : Launch Docker Desktop from the Start menu and wait until the status bar indicator turns green.
β WSL 2 not enabled
Symptom : Docker Desktop fails to start, displaying a WSL 2 kernel update prompt.
Fix : Open PowerShell as Administrator and run:
Restart your computer if prompted.
β Port 2266 already in use
Symptom : Apache fails to start, or container exits.
Fix : Modify APACHE_PORT in your .env file to an unused port (e.g., APACHE_PORT=8080) and rerun the installer.
β MySQL container not healthy
Symptom : Connection failures, loop redirecting back to database_setup.php.
Fix : Verify logs and database state. Run docker compose ps to inspect. If the database volume was corrupted, reset it using the commands below.
β Docker pull unexpected EOF
Symptom : Connection drop on large layers.
Fix : Run docker compose pull --progress=plain to resume downloads.
Symptom : Page not found.
Fix : Ensure the containers are running:
If they are not running, check logs:
docker compose logs -f app
docker compose logs -f db
Copy
β Ping/ICMP limitations inside Docker Desktop/Windows
Symptom : Pings inside containers do not work or show 100% packet loss.
Fix : Docker Desktop on Windows routes traffic through a user-space network translation layer that does not pass through low-level ICMP ping requests directly unless running with special permissions, or using the