Speedtest Tracker ist eine selbst gehostete Anwendung zur kontinuierlichen Überwachung der eigenen Internetverbindung. Die Software führt manuell oder in periodischen Intervallen Speedtests durch und speichert die Messdaten in einer Datenbank. Gemessen werden nicht nur Download- und Uploadgeschwindigkeiten, sondern auch Ping-Zeiten und Paketverluste. Alle Messwerte lassen sich grafisch aufbereitet über ein Dashboard abrufen. Für die eigentliche Messung wird der bekannte Speedtest von Ookla genutzt, wie die Projektseite https://github.com/alexjustesen/speedtest-tracker verrät.
Installation mit Docker Compose
Speedtest Tracker läuft als Docker-Container und lässt sich auf verschiedene Arten installieren. Besonders komfortabel gelingt die Einrichtung über Docker Compose. Dieser Artikel geht davon aus, dass auf Ihrem System bereits Docker sowie Compose installiert und lauffähig sind. In diesem Beispiel wird die Containerverwaltung Portainer verwendet. Nach dem Anlegen eines neuen Stacks in Portainer erscheint ein Editor, in den der Inhalt der Compose-Datei aus der offiziellen Dokumentation des Projekts eingetragen wird. Wichtig sind hier drei Umgebungsvariablen. Zum einen benötigen Sie die Werte für UID (Process User ID) und GID (Process Group ID), also die Benutzerkennung des Benutzers und die seiner Benutzergruppe. Die entsprechenden Werte für das aktuelle Konto ermitteln Sie mit diesem Terminalkommando:
id $USER
Für die UID dürfte typischerweise der Wert „1000“ für das Standard-Benutzerkonto zurückgemeldet werden.
Außerdem müssen Sie einen Application Key erzeugen, der unter aderem für die Verschlüsselung sensibler Daten verwendet wird. Den Key erzeugen Sie mit:
echo -n ‚base64:‘; openssl rand -base64 32;
Das Kommando gibt dann einen Zufallsstring aus, der mit „base64:“ beginnt. Sie benötigen die komplette Ausgabe inklusive dieses Präfixes. Den Wert kopieren Sie dann in der Compose-Datei in das Feld „APP_Key“. Standardmäßig verwendet Speedtest Tracker Sqlite als Datenbank, was vollkommen ausreichen sollte. Alternativ könnten auch Maria DB, My SQL oder Postgre SQL genutzt werden.

Erste Anmeldung und Konfiguration
Nach dem Start des Containers erreichen Sie die Weboberfläche von Speedtest Tracker über den Browser. Die URL setzt sich zusammen aus der IP-Adresse des Docker-Hosts und dem konfigurierten Port. In der Compose-Datei wird standardmäßig Port 80 genutzt. Sofern dieser Port bereits durch eine andere Anwendung blockiert ist, lässt er sich im entsprechenden Abschnitt „ports“ verändern, indem der jeweils linke Wert an den bevorzugten Port verändert wird. Nach dem Aufruf der URL (zum Beispiel „http://192.168.178.150:8080“) müssen Sie sich mit einem Benutzernamen und Passwort anmelden. Diese lauten für die initiale Anmeldung „admin@example.com“ für den Benutzernamen und „password“ als Passwort. Diese Standardwerte können Sie danach umgehend ändern. Klicken Sie dazu nach der Anmeldung auf das Profil-Icon in der rechten oberen Ecke der Weboberfläche. Im Menü wählen Sie den Punkt „Profile“ aus. Hier können Sie die E-Mail-Adresse als auch das Passwort anpassen. Als Admin dürfen Sie weitere Benutzerkonten einrichten, die dann eigene Messungen durchführen können.
Die erste Messung durchführen
Um das System zu testen, führen Sie manuell die erste Messung aus. Auf dem Dashboard finden Sie prominent platziert den Button „Speedtest“. Je nach Internetverbindung dauert ein Durchlauf zwischen 30 Sekunden und wenigen Minuten. Die Anwendung kontaktiert dabei Ookla. Dort wählen Sie aus dem Listenfeld einen Server aus Ihrer Nähe aus. Nun führt die Software Tests für Download, Upload und Ping durch. Sobald die Messung abgeschlossen ist, aktualisiert sich das Dashboard automatisch und zeigt die ermittelten Werte an. Sie sehen auf einen Blick die Download-geschwindigkeit, die Uploadrate sowie die Ping-Zeit in Millisekunden. Zusätzlich erfasst das System Informationen über den verwendeten Server und eventuelle Paketverluste. Nach der ersten Messung gibt es naturgemäß noch keine historischen Vergleichswerte. Die Stärke von Speedtest Tracker zeigt sich erst nach mehreren Durchläufen, wenn sich Trends und Muster erkennen lassen.
Das Dashboard bildet die zentrale Anlaufstelle für die Auswertung und Präsentation der gesammelten Daten. Standardmäßig erscheinen Liniendiagramme für Download- und Uploadgeschwindigkeit über einen wählbaren Zeitraum. Über den Eintrag „Results“ aus der linken Navigation gelangen Sie zur vollständigen Liste aller durchgeführten Messungen. Diese Übersicht zeigt sämtliche Tests in chronologischer Reihenfolge mit allen erfassten Details.
Sie können die Liste nach verschiedenen Kriterien filtern und sortieren – etwa nur Messungen mit besonders niedrigen Werten anzuzeigen. Für weitergehende Analysen oder zur Dokumentation gegenüber dem Internetanbieter bietet Speedtest Tracker eine Exportfunktion. Über die Filterfunktion legen Sie die Einträge fest, die exportiert werden. Sofern Sie keinen Filter setzen, geht das Programm davon aus, dass Sie die angezeigten Werte vollständig benötigen. Klicken Sie auf den Schalter „Export Results“, um den Vorgang zu beginnen. Stehen die Daten bereit, informiert Sie das Benachrichtigungs-Icon in der oberen rechten Ecke. Die CSV-Datei umfasst alle relevanten Messwerte inklusive Zeitstempel, verwendetem Server und Verbindungsqualität.

Automatische Messungen einrichten
Die eigentliche Stärke von Speedtest Tracker liegt in der Automatisierung. Statt Tests manuell anzustoßen, lässt sich ein Zeitplan für periodische Messungen definieren. Die Konfiguration erfolgt über Umgebungsvariablen im Docker-Container. Die relevante Variable heißt „SPEEDTEST_SCHEDULE“. Sie verwendet die von Cronjobs bekannten Zeitformate. Um etwa alle drei Stunden eine Messung auszuführen, tragen Sie Folgendes ein:
SPEEDTEST_SCHEDULE=0 */3 * * *
Die Cron-Syntax besteht aus fünf Feldern in dieser Reihenfolge: Minute, Stunde, Tag des Monats, Monat und Wochentag. Sternchen dienen als Platzhalter für „jede(n)” Stunde, Tag et cetera. Der Ausdruck „*/3“ bedeutet demnach alle drei Stunden. Diese Beispielkonfiguration macht dann Messungen um 0:00, 3:00, 6:00, 9:00, 12:00, 15:00, 18:00 und 21:00 Uhr. Neben dem Zeitplan können über Umgebungsvariablen weitere Aspekte gesteuert werden. Mit „SPEEDTEST_SERVERS“ lässt sich festlegen, welche Speedtest-Server bevorzugt genutzt werden sollen. Aufschluss darüber liefert die sehr Dokumentation auf der Projektseite.
Nicht zuletzt mit seinen Automatisierungsmöglichkeiten wird Speedtest Tracker zu einem zuverlässigen Werkzeug für die kontinuierliche Überwachung der Internetverbindung. Für exakte Ergebnisse sollte der Host über eine Ethernet-Verbindung mit dem Router verbunden sein, da das Ergebnis andernfalls stark von der Verbindungsqualität des lokalen Funknetzes abhängt.

