← Zurück zur Übersicht Speedtest Tracker mit Docker Compose: Eigene Internet-Historie lokal starten

Speedtest Tracker mit Docker Compose: Eigene Internet-Historie lokal starten

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 compose
  • openssl
  • 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_KEY und APP_URL sind laut offizieller Doku Pflicht.
  • ADMIN_NAME, ADMIN_EMAIL und ADMIN_PASSWORD wirken laut Variablen-Doku nur beim ersten Setup, sparen dir aber den Umweg ueber Default-Logins.
  • APP_TIMEZONE=Europe/Berlin passt die Anwendung an deine Zeitzone an.
  • Das lokale Volume ./data:/config sorgt 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