web application to monitor your local network and measure your Internet connection speed.
1.8K
Self-hosted network monitor and speed test
GitHub • Quick Start • Features • Screenshots • Configuration
NetTools is a self-hosted web application to monitor your local network and measure your Internet connection speed. It provides a modern, responsive interface with three main modules: Net Speed (speed tests), Net Alert (device discovery) and Net Check (diagnostic tools).
docker run -d \
--name nettools \
--network host \
-v nettools-data:/data \
-e TZ=Europe/Madrid \
-e NETTOOLS_PORT=8080 \
-e NETTOOLS_BACKEND_PORT=8000 \
--restart unless-stopped \
mbraut/nettools:latest
services:
nettools:
image: mbraut/nettools:latest
container_name: nettools
restart: unless-stopped
network_mode: host
volumes:
- nettools-data:/data
environment:
- TZ=Europe/Madrid
- NETTOOLS_PORT=8080 # Web UI port
- NETTOOLS_BACKEND_PORT=8000 # API backend port (internal)
volumes:
nettools-data:
driver: local
docker compose up -d
Access http://your-server:8080
Note:
network_mode: hostis required forarp-scanandnmapto discover devices on your local network. Without it, speed tests and diagnostic tools will work, but network scanning won't detect devices.
docker pull mbraut/nettools:latest
docker compose down
docker compose up -d




| Variable | Default | Description |
|---|---|---|
NETTOOLS_PORT | 8080 | Web UI port |
NETTOOLS_BACKEND_PORT | 8000 | API backend port (internal) |
NETTOOLS_DB_PATH | /data/nettools.db | Database path |
TZ | Europe/Madrid | Container timezone |
PYTHONUNBUFFERED | 1 | Real-time logs |
| Path | Contents |
|---|---|
/data/nettools.db | SQLite database with tests, devices and settings |
To backup, simply copy the /data/nettools.db file.
NETTOOLS_PORT (default 8080)
|
[ Nginx ]
/ \
Static /api/*
(Frontend) |
[ Uvicorn :NETTOOLS_BACKEND_PORT ]
(FastAPI)
|
[ SQLite DB ]
/data/nettools.db
| Component | Technology |
|---|---|
| Frontend | HTML5, CSS3, JavaScript (Vanilla) |
| Charts | ApexCharts |
| Backend | Python 3.12, FastAPI, Uvicorn |
| Database | SQLite (WAL mode) |
| Speed Test | Ookla Speedtest CLI |
| Network Scan | arp-scan, nmap |
| Notifications | Telegram Bot API |
| Resource | Minimum |
|---|---|
| CPU | 1 core |
| RAM | 256 MB |
| Disk | 100 MB + database |
| Network | LAN access for scanning |
Compatible with amd64, arm64 (Raspberry Pi 4/5) and armhf.
Full source code, manual installation guide and API documentation available on GitHub.
MIT License
Developed by bytebeat.es
Content type
Image
Digest
sha256:64bedda01…
Size
80.2 MB
Last updated
8 months ago
docker pull mbraut/nettools