Ping Monitor

Ping Monitor

A self-hosted host connectivity monitoring system

Automated ICMP ping checks · latency & packet-loss dashboards · geo-map visualization · multi-channel alerts

Python 3.11 FastAPI Vue 3 Element Plus ECharts

MySQL 8.4 Redis 7 Docker amd64 arm64

简体中文 · English

🚀 Live Demo · Quick Start · Features · Documentation

Stars Docker Pulls License

--- ![Visualization Dashboard](docs/images/datascreen.png) Visualization dashboard · node distribution, real-time latency, region coloring, fly-line links, latency leaderboard and live alerts ## Screenshots | Admin Dashboard | Host Management | |:---:|:---:| | ![Dashboard](docs/images/dashboard.png) | ![Hosts](docs/images/hosts.png) | | Statistics Board | Alert Records | |:---:|:---:| | ![Statistics](docs/images/databoard.png) | ![Alerts](docs/images/alerts.png) | ## Features | Module | Description | |---|---| | 🎯 **Host Monitoring** | Single / batch host monitoring with live online status, latency and packet loss. Enable/disable, ping now, streaming ping | | 📊 **Statistics Board** | `1h / 1d / 3d / 7d / 15d / 30d` views with latency and packet-loss trend charts | | 🗺️ **Visualization Dashboard** | China / world map, region coloring, node fly-lines, monitoring center, fullscreen, public visitor toggle | | 🌏 **Geo Location** | Automatic domain→IP resolution, multi-source IP geolocation (ip-api / ipwho.is / ip2location …), auto-complete of missing locations | | 🔔 **Alerts** | ServerChan, DingTalk robot, Webhook, scheduled reports; trigger on state change or sustained anomaly | | 🛠️ **Admin Console** | Fuzzy search, status filters, pagination, import/export, system logs, database backup & restore | | 🐳 **Easy Deployment** | Local run / `docker compose` / multi-arch Docker Hub image (`amd64` + `arm64`) | ## Quick Start ### Option 1 · Docker Compose (MySQL + Redis) ```bash git clone https://github.com/JunWan666/ping-monitor.git cd ping-monitor/docker docker compose up -d ``` Open `http://localhost:8000` — the first visit guides you through creating an admin account. ### Option 2 · Single container (SQLite, lightweight) ```bash docker run -d --name ping-monitor \ -p 8000:8000 \ -v $PWD/data:/app/data \ -e DISABLE_NOTIFICATIONS=true \ tannic666/ping-monitor:v1.7.0 ``` ### Option 3 · Local development ```bash # Backend cd backend && pip install -r requirements.txt && python main.py # Frontend (new terminal) cd frontend && npm install && npm run dev ``` ## Why Ping Monitor? | Capability | Ping Monitor | Uptime Kuma | Gatus | |---|:---:|:---:|:---:| | ICMP ping latency / packet-loss focus | ✅ | Partial | Partial | | Visualization dashboard (map + fly-lines) | ✅ | ❌ | ❌ | | Automatic IP geolocation | ✅ | ❌ | ❌ | | Host import / export | ✅ | Partial | ❌ | | Chinese UI built-in | ✅ | i18n | i18n | | Deployment | Docker / bare metal | Docker | Docker | ## Tech Stack **Backend** · FastAPI · SQLAlchemy · APScheduler · ping3 · Redis (optional) · MySQL / SQLite **Frontend** · Vue 3 · Vue Router · Element Plus · ECharts · Vite **Deploy** · Multi-stage Docker build · Nginx ## Documentation Full documentation is currently in Chinese — see the [Chinese README](README.md): - [Deployment on Docker + Debian 11](docs/DEPLOYMENT_DOCKER_DEBIAN11.md) - [MySQL + Redis deployment](docs/DEPLOYMENT_MYSQL_REDIS.md) - [Environment variables](README.md#环境变量) · [API overview](README.md#api-概览) ## License [Apache-2.0](LICENSE) ---
**If this project helps you, please consider giving it a ⭐ Star — it really helps!** [![Star History Chart](https://api.star-history.com/svg?repos=JunWan666/ping-monitor&type=Date)](https://star-history.com/#JunWan666/ping-monitor&Date)