selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
meshping logo

Self-host meshping

v1.0.1

Network latency monitoring with histogram visualizations

ReleaseOpen SourceMIT
Updated6 years ago
LanguagePython
Setup difficultyEasy
MobileResponsive
Stars
170
Port
9922 (HTTP web UI and metrics endpoint)
Docker
svedrin/meshping
Install with Docker
Main web UI showing latency graphsHeatmap visualization of ping latencies over multiple days

What is meshping?

Meshping is a self-hosted network monitoring tool designed to detect weak links in your network topology. It pings multiple targets at once, collecting response times in histograms rather than simple averages, and runs traceroute to map network paths with Path MTU discovery and AS information. The web UI shows latency graphs, heatmaps over several days, network maps rendered as SVG, and can detect routing loops. Multiple Meshping instances can be peered to exchange target lists. It exposes a Prometheus metrics endpoint for alerting. Deployment is via Docker or docker-compose, with images on Docker Hub. The project is licensed under MIT and actively maintained.

Should you self-host meshping?

meshping scores 47/100 on selfhost.directory (how scoring works) and ranks #31 of 48 in Network Monitoring. It has 170 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is mitmproxy (86/100, 46 448 stars). It scores higher overall, so compare the two before you pick. See meshping vs mitmproxy side by side.

Features

  • Dynamic target management
  • Heatmap visualization
  • Histogram-based latency visualization
  • IPv6 Support
  • Multi-target comparison
  • Network Topology Mapping
  • Peer-to-peer target exchange
  • Prometheus metrics endpoint
  • Routing loop detection
  • Traceroute with Path MTU discovery

meshping README

How to install meshping

Install meshping with Docker

Environment variables
MESHPING_PEERS (optional)

docker volume create meshping-db docker run -d --name meshping -p 9922:9922 --restart=always --hostname $(hostname) -v meshping-db:/opt/meshping/db svedrin/meshping

For Windows with Docker Desktop WSL2 backend; on Linux use network_mode=host instead of -p

How to configure meshping

  • MESHPING_DATABASE_PATHdbPath to the underlying SQLite database file, either relative to the main script invocation location or absolute

    Path to the underlying SQLite database file, either relative to the main script invocation location or absolute

  • MESHPING_DEVfalseSet to true to allow automatic UI template reloading

    Set to true to allow automatic UI template reloading

  • MESHPING_HISTOGRAM_DAYS3How many days of data to keep in the histograms

    How many days of data to keep in the histograms

  • MESHPING_PEERING_INTERVAL30Interval between peer communication attempts in seconds

    Interval between peer communication attempts in seconds

  • MESHPING_PEERSComma-separated list of other Meshping instances to peer with (only ip:port, no URLs)

    Comma-separated list of other Meshping instances to peer with (only ip:port, no URLs)

  • MESHPING_PING_INTERVAL30Interval between sent ICMP echo request packages for each target in seconds

    Interval between sent ICMP echo request packages for each target in seconds

  • MESHPING_PING_TIMEOUT5Ping timeout in seconds

    Ping timeout in seconds

  • MESHPING_TRACEROUTE_INTERVAL900Seconds between traceroute runs

    Seconds between traceroute runs

More in Network Monitoring

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…