An ultra-lightweight network monitoring tool designed with Raspberry Pi in mind. It continuously pings a target host and visualizes latency statistics over time.
Optimized to run on resource-constrained devices like the Pi Zero, but also works on other platforms.
- Continuous Monitoring: Configurable ping rounds
- SQLite Storage: Stores metrics with configurable retention
- Web Dashboard: Real-time charts
- Flexible Configuration: TOML config file support with CLI overrides
- Cross-Platform: Optimized for Raspberry Pi, also runs on other Linux distributions and macOS
- Single Binary: No external dependencies, embeds web UI
- Lightweight: Minimal resource usage
Download and install the .deb package for automatic setup.
Tip
Check out the Release Notes for the latest version
# Raspberry Pi (ARM64 - Raspberry Pi 3/4/5)
wget https://github.com/gcstr/pingo/releases/latest/download/pingo_0.4.0_linux_arm64.deb
sudo dpkg -i pingo_0.4.0_linux_arm64.deb
# Raspberry Pi (ARMv7 - Raspberry Pi Zero/2)
wget https://github.com/gcstr/pingo/releases/latest/download/pingo_0.4.0_linux_armv7.deb
sudo dpkg -i pingo_0.4.0_linux_armv7.deb
# x86_64 Linux
wget https://github.com/gcstr/pingo/releases/latest/download/pingo_0.4.0_linux_amd64.deb
sudo dpkg -i pingo_0.4.0_linux_amd64.debThe .deb package will:
- Install the binary to
/usr/bin/pingo - Create the systemd service
- Enable and start the service automatically
- Dashboard will be available at
http://localhost:7777
# ARM64
wget https://github.com/gcstr/pingo/releases/latest/download/pingo_0.4.0_linux_arm64.rpm
sudo rpm -i pingo_0.4.0_linux_arm64.rpm
# x86_64
wget https://github.com/gcstr/pingo/releases/latest/download/pingo_0.4.0_linux_amd64.rpm
sudo rpm -i pingo_0.4.0_linux_amd64.rpmDownload the appropriate archive for your platform:
# Extract the archive
tar xzf pingo_0.4.0_*.tar.gz
# Run with defaults
./pingo# Create config directory
mkdir -p ~/.config/pingo
# Copy example config
cp config.toml.example ~/.config/pingo/config.toml
# Edit configuration as needed
nano ~/.config/pingo/config.toml
# Run
./pingo- Go 1.21 or later
go build -o pingoGOOS=linux GOARCH=arm64 go build -o pingo-arm64GOOS=linux GOARCH=arm GOARM=7 go build -o pingo-armPingo follows XDG Base Directory specifications:
- Config:
~/.config/pingo/config.toml - Data:
~/.local/share/pingo/ping_stats.db
| Setting | Default | Description |
|---|---|---|
port |
7777 |
Web server port |
target |
8.8.8.8 |
Host to ping |
ping_count |
5 |
Number of pings per round * |
retention_days |
15 |
Days to retain data |
db_path |
~/.local/share/pingo/ping_stats.db |
Database file path |
* Pings will be grouped per round, and only one row with
max,min,avg, andstddevwill be saved to the database per round. A higher count means lower resolution, but also a smaller database.
Warning
Increasing retention and/or reducing ping count will increase database size
- CLI flags (highest priority)
- Config file (
~/.config/pingo/config.toml) - Built-in defaults (fallback)
./pingo [options]
Options:
-config string
Path to config file (default "~/.config/pingo/config.toml")
-db string
Path to SQLite database file (overrides config)
-pings int
Number of pings per round (overrides config)
-port string
Web server port (overrides config)
-retention int
Number of days to retain ping data (overrides config)
-target string
Target host to ping (overrides config)# Use defaults
./pingo
# Custom port
./pingo -port 8080
# Monitor specific host with custom settings
./pingo -target 1.1.1.1 -pings 50 -retention 60
# Use custom config file
./pingo -config /etc/pingo/config.toml
# Override specific config values
./pingo -port 9000 -target 9.9.9.9If you installed via .deb or .rpm package, pingo runs as a systemd service:
# systemctl
sudo systemctl [status,stop,start,restart] pingo
# View logs
sudo journalctl -u pingo -f
# Disable auto-start on boot
sudo systemctl disable pingo
# Enable auto-start on boot
sudo systemctl enable pingoFor manual installation, see pingo.service for systemd service configuration.
