Internet Speed Monitor with MQTT Auto-Discovery for HA

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!