Hi everyone,
I built SpeedGauge, a self-hosted internet speed monitoring tool with native Home Assistant integration via MQTT auto-discovery.
Live demo: SpeedGauge
What is it?
A single Docker container that runs scheduled Ookla speed tests and gives you a clean dashboard with real-time gauges, charts, and history. It integrates with Home Assistant through MQTT auto-discovery. No YAML configuration needed.
Features
- Scheduled speed tests using the official Ookla Speedtest CLI
- Real-time animated gauge during testing
- Dashboard with speed history charts (24h / 7d / 30d)
- History page with all results and Ookla result links
- MQTT auto-discovery — device appears automatically in HA
- Trigger speed tests from HA dashboards and automations
- Telegram and webhook notifications
- Threshold alerts (get notified when speeds drop)
- Light/dark themes, mobile-friendly
- CSV/JSON export
- SQLite — no external database needed
- Single container, ~200 MB
Home Assistant Entities
Once you configure MQTT in the Settings page, a SpeedGauge device appears in HA with:
Download Speed - Sensor (Mbps)
Upload Speed - Sensor (Mbps)
Ping - Sensor (ms)
Jitter - Sensor (ms)
ISP - Sensor
Test Running - Binary Sensor
Run Test - Button
The button entity lets you trigger a speed test directly from your HA dashboard or automations.
Quick Start:
Create a docker-compose.yml file:
services:
speedgauge:
image: stflab/speedgauge:latest
container_name: speedgauge
ports:
- "8083:8083"
volumes:
- ./data:/data
environment:
- TZ=Europe/Paris
restart: unless-stopped
Then start:
docker compose up -d
Open http://<your-ip>:8083, go to Settings, enter your MQTT broker details, and the HA device appears automatically. All configuration is done through the web UI, no config files to edit.
Links
GitHub:https://github.com/stf-lab/speedgauge
Feedback and contributions are welcome!