Speedtest Tracker mit Docker Compose: Eigene Internet-Historie lokal starten
Wenn dein Anschluss mal wieder langsamer wirkt als versprochen, fehlt meistens nicht nur Bandbreite, sondern ein Verlauf. Speedtest Tracker ist genau fuer diesen Fall gebaut: eine selbst gehostete Historie fuer Download, Upload, Ping und Ausfaelle. Die offizielle Doku beschreibt das Projekt im Juni 2026 als Docker-faehige Anwendung zum Ueberwachen von Performance und Uptime der eigenen Internetverbindung, und sie empfiehlt Docker Compose als bevorzugten Installationsweg.
Fuer dieses Blog ist das ein sauberer Fallback mit echtem Nutzwert. Die Dokumentation ist nach eigener Angabe auf dem Stand v1.13.x, nennt Compose als empfohlenen Weg, dokumentiert die Pflichtvariablen klar und liefert sogar einen eigenen Health-Check-Endpunkt. Genau deshalb ist das hier kein generischer Docker-Grundlagenpost, sondern ein Projekt mit sichtbarem Ergebnis und konkretem Alltagswert.
Was du am Ende hast
- Speedtest Tracker lokal unter
http://127.0.0.1:8080 - persistente Daten in einem lokalen
data-Ordner - einen eigenen Admin-Zugang statt Standard-Credentials
- einen pruefbaren Health-Check unter
/api/healthcheck - eine Grundlage fuer spaetere automatische Speedtests und ISP-Verlaufsdaten
Voraussetzungen
Du brauchst:
- Docker Engine oder Docker Desktop
docker composeopenssl- einen freien Port
8080 - optional einen freien Port
8443
Kurz pruefen:
docker --version
docker compose version
openssl version
1. Arbeitsordner anlegen
Starte bewusst in einem neuen Projektordner:
mkdir speedtest-tracker-lab && cd speedtest-tracker-lab
2. APP_KEY erzeugen
Die offizielle Compose-Doku verlangt einen APP_KEY und zeigt dafuer direkt den passenden Befehl:
echo -n 'base64:'; openssl rand -base64 32
Kopiere die komplette Ausgabe inklusive base64:. Ohne diesen Wert startet die Anwendung nicht sauber.
3. Eigene UID und GID nachsehen
Laut Doku brauchst du PUID und PGID, damit der Container mit deinem Benutzerkontext arbeiten kann:
id -u
id -g
Merke dir beide Werte. Auf vielen Einzelplatzsystemen ist das jeweils 1000, aber verlassen solltest du dich darauf nicht.
4. Compose-Datei schreiben
Die offizielle Anleitung zeigt fuer den empfohlenen Schnellstart eine SQLite-Variante. Genau die ist fuer einen lokalen Verlauf der sinnvollste Einstieg, weil sie keinen zweiten Datenbank-Container erfordert.
Erstelle speedtest-tracker-lab/compose.yaml:
services:
speedtest-tracker:
image: lscr.io/linuxserver/speedtest-tracker:latest
container_name: speedtest-tracker
restart: unless-stopped
ports:
- "8080:80"
- "8443:443"
environment:
- PUID=1000
- PGID=1000
- APP_KEY=base64:ERSETZE_DAS_DURCH_DEINEN_GENERIERTEN_WERT
- APP_URL=http://127.0.0.1:8080
- DB_CONNECTION=sqlite
- APP_TIMEZONE=Europe/Berlin
- APP_NAME=Speedtest Tracker Lokal
- ADMIN_NAME=Eckelsoft
- [email protected]
- ADMIN_PASSWORD=ERSETZE_DAS_DURCH_EIN_STARKES_PASSWORT
volumes:
- ./data:/config
Wichtige Punkte:
APP_KEYundAPP_URLsind laut offizieller Doku Pflicht.ADMIN_NAME,ADMIN_EMAILundADMIN_PASSWORDwirken laut Variablen-Doku nur beim ersten Setup, sparen dir aber den Umweg ueber Default-Logins.APP_TIMEZONE=Europe/Berlinpasst die Anwendung an deine Zeitzone an.- Das lokale Volume
./data:/configsorgt dafuer, dass Historie und Einstellungen ein Update ueberleben.
Wenn deine UID oder GID nicht 1000 ist, ersetze die beiden Werte jetzt direkt.
5. Container starten
Jetzt faehrst du den Stack hoch:
docker compose up -d
Beim ersten Start initialisiert die Anwendung ihre Konfiguration und den ersten Benutzer. Das kann einen kurzen Moment dauern.
6. Funktion sauber pruefen
Bevor du im Browser weitermachst, nimm die drei sinnvollen Checks mit:
docker compose ps
docker compose logs --tail=100 speedtest-tracker
curl -fsS http://127.0.0.1:8080/api/healthcheck
Der dritte Befehl ist besonders wertvoll, weil die offizielle Doku genau diesen Endpunkt fuer den Health Check nennt. Wenn alles sauber laeuft, bekommst du eine erfolgreiche Antwort mit der Meldung:
Speedtest Tracker is running!
Damit ist der wichtigste Teil verifiziert: Die Anwendung laeuft wirklich und ist nicht nur "irgendwie gestartet".
7. Ersten Login im Browser machen
Oeffne jetzt:
http://127.0.0.1:8080
Melde dich mit den Admin-Daten an, die du in compose.yaml gesetzt hast.
Falls du die ADMIN_*-Variablen weggelassen hast, weist die offizielle Authentifizierungsseite darauf hin, dass beim ersten Start sonst ein Default-Konto erzeugt wird:
- Benutzername:
[email protected] - Passwort:
password
Fuer einen echten Betrieb solltest du darauf nicht setzen. Eigene Start-Credentials sind der sauberere Weg.
8. Automatische Messungen optional direkt aktivieren
Speedtest Tracker lebt von Verlauf, nicht vom einmaligen Login. Die Variablen-Doku nennt dafuer SPEEDTEST_SCHEDULE als Cron-Ausdruck fuer automatische Tests.
Wenn du direkt von Anfang an messen willst, kannst du die Compose-Datei zum Beispiel so erweitern:
- SPEEDTEST_SCHEDULE=6 */2 * * *
- PRUNE_RESULTS_OLDER_THAN=90
Die erste Zeile entspricht dem offiziellen Beispiel fuer einen regelmaessigen Testlauf. Die zweite sorgt dafuer, dass sehr alte Messwerte spaeter auf Wunsch automatisch entsorgt werden.
Nach Aenderungen an der Compose-Datei startest du neu:
docker compose up -d
9. Was das Setup praktisch taugt
Der eigentliche Mehrwert liegt nicht in einem schicken Dashboard allein, sondern in der Beweislast:
- Du baust eine Historie fuer Download, Upload und Latenz auf.
- Du siehst spaeter, ob Probleme nur gefuehlt oder wiederkehrend sind.
- Du kannst Stoerungen gegen Tageszeiten und Uptime einordnen.
- Du hast ein lokales Werkzeug statt eines fluechtigen einzelnen Speedtests im Browser.
Gerade fuer Homeoffice, NAS-Betrieb, Video-Calls oder ISP-Diskussionen ist das deutlich nuetzlicher als der naechste einmalige Ookla-Klick ohne Verlauf.
10. Update und Alltag
Ein normales Update faehrt sich so:
docker compose pull
docker compose up -d
Zum Stoppen:
docker compose down
Deine Daten bleiben erhalten, solange der Ordner speedtest-tracker-lab/data bestehen bleibt.
Fazit
Speedtest Tracker ist als Docker-Compose-Projekt gerade deshalb stark, weil die offizielle Doku kaum Interpretationsspielraum laesst: empfohlener Compose-Weg, klare Pflichtvariablen, lokaler Health Check und sichtbares Ergebnis im Browser. Wenn du im Juni 2026 ein Self-Hosting-Projekt mit echtem Alltagswert suchst, ist eine eigene Internet-Historie sinnvoller als der naechste beliebige Container ohne messbaren Nutzen.
Quellen
- https://docs.speedtest-tracker.dev/
- https://docs.speedtest-tracker.dev/getting-started/installation/using-docker-compose
- https://docs.speedtest-tracker.dev/getting-started/environment-variables
- https://docs.speedtest-tracker.dev/security/authentication
- https://docs.speedtest-tracker.dev/other/health-check