Self-host Speedtest Tracker
updated Sep 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
Runs scheduled internet speed tests with the Ookla Speedtest CLI and records download, upload, ping and packet loss over time, with charts, threshold notifications and InfluxDB/Prometheus export. Built on Laravel and shipped as a LinuxServer.io image with SQLite by default.
Key facts
CategoryMonitoring
LicenseMIT
StackPHP, Laravel
Min RAM256 MB
Official imageyes
Measured idle RAM110 MB
Difficulty
What you need
- Any VPS with at least 256 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + USKamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + AsiaDigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + AsiaPaid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Speedtest Tracker (SQLite) — APP_KEY is required and generated here
docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8080:80 -e PUID=$(id -u) -e PGID=$(id -g) \
-e APP_KEY="base64:$(openssl rand -base64 32)" -e APP_URL=http://SERVER_IP:8080 \
-e DB_CONNECTION=sqlite -v speedtest-tracker:/config \
lscr.io/linuxserver/speedtest-tracker:latest
# → http://SERVER_IP:8080 — default login admin@example.com / password; change it at once
# on a VPS it measures the VPS's own uplink, not your home connectionMore in Monitoring
Monitoring
Beszel
GoPocketBaseSQLite
easyRead guide →
Monitoring
changedetection.io
PythonFlask
easyRead guide →
Monitoring
Checkmate
TypeScriptNode.jsMongoDB
easyRead guide →
Monitoring
Gatus
Go
easyRead guide →