NetProbe

NetProbe

Docker app from bmartino1's Repository

Overview

Netprobe 2.0 – Internet Quality Dashboard

Netprobe 2.0 is a lightweight, container-friendly network probe and web UI for home/lab internet monitoring.

It periodically:

Pings your gateway, router, and a list of “anchor” sites.
Measures packet loss, latency, and jitter.
Measures DNS lookup latency per DNS server.
Runs scheduled and manual Speedtest.net tests.
Stores everything in SQLite and renders a dark-mode dashboard with Chart.js.
The goal is a simple “drop in and forget it” quality monitor that you can run on Unraid, Proxmox, Docker, etc.

Additional variables can be found here: https://github.com/bmartino1/NetProbe_Python

Optional data:
ALL are OPTIONAL! Defaults/fallbacks to SQLite.

Optional: if ping needs extra caps in your environment

--cap-add=NET_RAW --cap-add=NET_ADMIN --cap-add=SYS_ADMIN

Use standalone Postgres for backend storage docker variables...

(May be hidden in template)
USE_POSTGRES: ${USE_POSTGRES:-true}
DB_ENGINE: ${DB_ENGINE:-postgres}

Postgres connection details (match the Postgres service above via env file...)

POSTGRES_HOST: ${POSTGRES_HOST:-postgres}
POSTGRES_PORT: ${POSTGRES_PORT:-5432}
POSTGRES_DB: ${POSTGRES_DB:-netprobe}
POSTGRES_USER: ${POSTGRES_USER:-netprobe}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-netprobe}

Requirements

ALL are OPTIONAL! Defaults/fallbacks to SQLite

# Optional: if ping needs extra caps in your environment
--cap-add=NET_RAW --cap-add=NET_ADMIN --cap-add=SYS_ADMIN


# Use standalone Postgres for backend storage docker variables...

USE_POSTGRES: ${USE_POSTGRES:-true}
DB_ENGINE: ${DB_ENGINE:-postgres}
    
# Postgres connection details (match the Postgres service above via env file...)

POSTGRES_HOST: ${POSTGRES_HOST:-postgres}
POSTGRES_PORT: ${POSTGRES_PORT:-5432}
POSTGRES_DB: ${POSTGRES_DB:-netprobe}
POSTGRES_USER: ${POSTGRES_USER:-netprobe}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-netprobe}

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
bridge
Shell
bash
Privileged
false

Template configuration

DockerNatPortPorttcp
Target
8080
Default
8080
Value
8080
Database pathPathrw

Container /data location for SQLite file that holds long-term data. Container path can be changed if DB_PATH variable is assigned. DB_PATH defaults to /data/netprobe.sqlite

Target
/data/
Default
/mnt/user/appdata/netprobe_database
Value
/mnt/user/appdata/netprobe_database
PROBE_INTERVALVariable

Seconds between script probe runs. (Countdown in web page.) This runs the pings, DNS lookups, and others to collect data...

Default
30
Value
30
PING_COUNTVariable

ICMP packets per target per probe.

Default
20
Value
4
APP_TIMEZONEVariable

Time zone, e.g. America/Chicago

Default
UTC
Value
UTC
SITESVariable

Comma-separated ping targets.

Default
fast.com,google.com,youtube.com
Value
fast.com,google.com,youtube.com
ROUTER_IPVariable

Optional LAN router IP. Your router/gateway IP address to help with pings. Can leave blank (to leave blank, delete this variable).

Default
192.168.1.1
Value
192.168.1.1
DNS_TEST_SITEVariable

Domain for DNS latency tests.

Default
google.com
Value
google.com
DNS_NAMESERVER_4Variable

Web UI display name

Default
My_DNS_Server
Value
My_DNS_Server
DNS_NAMESERVER_4_IPVariable

DNS IPs to probe. Do you run a custom DNS server? Set this to that IP.

Default
192.168.1.1
Value
192.168.1.1
SPEEDTEST_ENABLEDVariable

Enable periodic speed tests at SPEEDTEST_INTERVAL in seconds.

Default
True
Value
True
SPEEDTEST_INTERVALVariable

14400 seconds = 4 hours. Seconds between automatic speed tests.

Default
14400
Value
14400
DNS_NAMESERVER_1Variable

Google_DNS

Default
Google_DNS
Value
Google_DNS
DNS_NAMESERVER_1_IPVariable

Google_DNS 8.8.8.8

Default
8.8.8.8
Value
8.8.8.8
DNS_NAMESERVER_2Variable

Quad9_DNS

Default
Quad9_DNS
Value
Quad9_DNS
DNS_NAMESERVER_2_IPVariable

Quad9_DNS 9.9.9.9

Default
9.9.9.9
Value
9.9.9.9
DNS_NAMESERVER_3Variable

CloudFlare_DNS

Default
CloudFlare_DNS
Value
CloudFlare_DNS
DNS_NAMESERVER_3_IPVariable

CloudFlare_DNS 1.1.1.1

Default
1.1.1.1
Value
1.1.1.1
USE_POSTGRESVariable

Requires DB_ENGINE set to postgres Use a standalone Postgres and set the required Postgres Docker variables manually.

Default
true
Value
false
DB_ENGINEVariable

Choose database backend. If using Postgres, set USE_POSTGRES to true as well.

Default
postgres
Value
sqlite
WEIGHT_LOSSVariable

Weight of packet loss in score (0–1, sum = 1).

Default
-0.6
Value
-0.6
WEIGHT_LATENCYVariable

Weight of latency.

Default
0.15
Value
0.15
WEIGHT_JITTERVariable

Weight of jitter.

Default
0.2
Value
0.2
WEIGHT_DNS_LATENCYVariable

Weight of DNS latency.

Default
0.05
Value
0.05
THRESHOLD_LOSSVariable

Loss % considered “max bad” for scoring.

Default
5
Value
5
THRESHOLD_LATENCYVariable

Latency ms considered “max bad”.

Default
100
Value
100
THRESHOLD_JITTERVariable

Jitter ms considered “max bad”.

Default
30
Value
30
THRESHOLD_DNS_LATENCYVariable

DNS ms considered “max bad”.

Default
100
Value
100
WEB_PORTVariable

This sets the Python web server port. If edited, update Docker NAT ports and WebUI URL.

Default
8080
Value
8080
TailScale Fallback State DirectoryVariable{3}

Fallback container directory for Tailscale state information - Added by Community Applications

Target
CA_TS_FALLBACK_DIR
Default
/data/
Value
/data/

Download Statistics

3,666
Total Downloads

Details

Repository
bmmbmm01/netprobe:latest
Last Updated2026-04-08
First Seen2025-12-01

Run NetProbe on Unraid.

NetProbe is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.