Speedtest Tracker, ou comment surveiller votre débit Internet

Je profite d'un peu de calme en cette fin d'année pour mettre à jour cet article sur Speedtest-Tracker, l'image initialement fournie n'étant plus maintenue par son créateur.

Historique des versions

Version Date Commentaires
1 Août 2021 Version initiale
2 Décembre 2024 Mise à jour

Tout le monde n'a pas encore la chance d'être raccordé à la Fibre Optique ou d'avoir un abonnement pour profiter des débits élevés qu'offre ce type de connexion. Pour ma part, c'est très récent et ne date que d'il y a quelques semaines !

Dans la vie de tous les jours, en étant raccordé à la fibre, il est possible de regarder des films ou séries en streaming en très haute qualité, de jouer à des jeux en ligne sans latence, de pouvoir télécharger des programmes ou mises à jour dans des temps réduits, ... Sans la fibre, toutes ces tâches sont possibles, mais en prenant son mal en patience ou en acceptant une dégradation du service en question...
Dans le cadre professionnel, cela permet de télécharger des fichiers depuis ou vers un serveur dans des délais courts. Par exemple, il me fallait environ 30 minutes chaque semaine pour télécharger un ensemble de fichiers qui font environ 1 Go, ce qui me prend aujourd'hui moins d'1 minute !

Que l'on soit raccordé ou non à la Fibre Optique, on peut vouloir surveiller sa bande passante, que ce soit pour vérifier qu'elle est stable dans le temps, ou pour trouver les créneaux moins utilisés sur lesquels planifier des chargements ou téléchargements. C'est là qu'interviennent des services de test de débit Internet, comme Speedtest d'Ookla, nPerf ou encore Fast de Netflix, des services en ligne permettant de tester la vitesse de sa connexion Internet.

C'est bien, mais ce sont des services en ligne, et comme à notre habitude, nous cherchons ici à vous faire découvrir des services que vous pouvez auto-héberger. Un outil s'est démarqué du lot, par sa simplicité, Speedtest Tracker ! Initialement développé par Henry Whitaker, celui-ci en a abandonné la maintenance ! Mais c'est là qu'est la force de l'open-source et d'Internet, Alex Justesen a repris le projet et apporté des améliorations.

GitHub - alexjustesen/speedtest-tracker: Speedtest Tracker is a self-hosted application that monitors the performance and uptime of your internet connection.
Speedtest Tracker is a self-hosted application that monitors the performance and uptime of your internet connection. - alexjustesen/speedtest-tracker

Pour mettre en place cet outil, nous allons utiliser l'image Docker mise à disposition par LinuxServer.io à l'aide du fichier compose.yaml suivant :

services:
  speedtest-tracker:
    image: lscr.io/linuxserver/speedtest-tracker:latest
    restart: unless-stopped
    container_name: speedtest-tracker
    ports:
      - 8080:80
      - 8443:443
    environment:
      - PUID=1000
      - PGID=1000
      - APP_KEY=
      - APP_TIMEZONE=Europe/Paris
      - DISPLAY_TIMEZONE=Europe/Paris
      - DB_CONNECTION=sqlite
      - PUBLIC_DASHBOARD=false # Modifiez la valeur par true si vous souhaitez afficher une page accessible publiquement
      - SPEEDTEST_SCHEDULE=7 * * * *
      - SPEEDTEST_SERVERS= # Specifiez les identifiants des serveurs a utiliser
      - PRUNE_RESULTS_OLDER_THAN=8 # Specifiez le nombre de jours d'historique a garder (mettez 0 pour effacer toutes les donnees)
    volumes:
      - ./data:/config
    healthcheck:
      test: curl -fSs APP_URL/api/healthcheck | jq -r .message || exit 1
      interval: 10s
      retries: 3
      start_period: 30s
      timeout: 10s

Pour générer la variable APP_KEY, rendez vous sur cette page et copiez la clé générée.
Si vous souhaitez utiliser un ou des serveurs précis, vous en trouverez la liste sur ce site, et il vous suffira d'indiquer les identifiants des serveurs qui vous intéressent dans le fichier compose.yaml séparés par une virgule.
Pour que les tests s'exécutent de manière régulière, vous devez définir la variable SPEEDTEST_SCHEDULE avec la fréquence souhaitée. Vous pouvez vous aider du site Crontab.guru.

Vous retrouverez l'ensemble des variables d'environnement possibles sur la page suivante :

Environment Variables | Speedtest Tracker
A complete inventory of all environment variables for configuring Speedtest Tracker.

Lancez la pile Docker Compose avec la commande docker compose up -d et connectez vous sur l'adresse http://<IP.HOTE.DOCKER>:8080 .

Les identifiants par défaut sont admin@example.com / password et vous pourrez les modifier depuis le profil.

Il est possible de lancer un test manuellement, d'envoyer les résultats des tests vers une base InfluxDB ou de les exporter au format csv, de configurer des notifications ou de personnaliser les seuils d'alerte.


Conclusion

Mettre en place ce type d'outil ne prend pas beaucoup de temps mais peut vous rendre service pour surveiller les débits de votre connexion Internet ou encore trouver le bon moment pour effectuer des opérations nécessitant de la bonne passante.

Si vous avez des questions, n'hésitez pas à laisser un commentaire ou venir échanger avec nous sur le groupe Telegram de la communauté.