• Home
  • Auto-Hébergement
  • Speedtest Tracker en self‑hosting : comment monitorer votre connexion Internet 24/7
Speedtest Tracker en self‑hosting : comment monitorer votre connexion Internet 24/7
Par Guillaume REYNAUD profile image Guillaume REYNAUD
9 min read

Speedtest Tracker en self‑hosting : comment monitorer votre connexion Internet 24/7

Surveillez enfin votre FAI : découvrez comment installer Speedtest Tracker en self‑hosted pour mesurer, historiser et prouver la vraie vitesse de votre connexion Internet.

Vous voulez savoir si votre fournisseur d’accès Internet tient ses promesses ? Avec Speedtest Tracker, vous pouvez surveiller automatiquement la vitesse de votre connexion et conserver un historique détaillé de vos tests.

Cet outil open-source, basé sur le moteur de Speedtest.net, exécute des mesures régulières de débit descendant, montant et de latence, puis affiche les résultats sous forme de graphiques clairs.

Idéal pour détecter des ralentissements, prouver des baisses de performance à votre FAI ou simplement optimiser votre réseau, Speedtest Tracker s’installe facilement sur un serveur ou un NAS.

Dans ce guide, découvrez comment installer Speedtest Tracker en selfhosted et profiter de toutes ses fonctionnalités pour mesurer et suivre votre vitesse Internet au quotidien.

Qu’est-ce que Speedtest Tracker ?

Présentation de l’outil

Speedtest Tracker est une application open-source conçue pour mesurer automatiquement la vitesse de votre connexion Internet et enregistrer les résultats dans une base de données.

Accessible via une interface web claire et intuitive, il s’appuie sur le moteur officiel de Speedtest.net pour réaliser des tests de débit descendant, montant et de latence. L’outil peut être installé sur un serveur personnel, un NAS ou un Raspberry Pi, et fonctionne en continu sans intervention manuelle.

Speedtest Tracker est une application open-source conçue pour mesurer automatiquement la vitesse de votre connexion Internet

Différence avec un test Speedtest classique

Contrairement au test ponctuel que vous réalisez manuellement sur Speedtest.net, Speedtest Tracker exécute ses mesures à intervalles réguliers, même lorsque vous n’êtes pas devant votre écran.

Les données ne disparaissent pas après chaque test : elles sont stockées et historisées, ce qui permet d’observer l’évolution des performances réseau sur plusieurs jours, semaines ou mois. De plus, vous pouvez accéder à ces informations à tout moment pour comparer les résultats et détecter d’éventuels problèmes.

Avantages : suivi automatisé, historique, graphiques, open-source

L’un des principaux atouts de Speedtest Tracker est son suivi totalement automatisé, qui vous libère de la contrainte de lancer les tests vous-même. Chaque mesure est sauvegardée et présentée sous forme de graphiques lisibles, facilitant l’analyse des variations de débit et de latence.

Étant open-source, le logiciel est gratuit et peut être personnalisé selon vos besoins, avec la possibilité d’ajouter des intégrations ou de modifier son apparence. Cela en fait un outil idéal pour les particuliers exigeants comme pour les administrateurs réseau.

Pourquoi surveiller la vitesse de son Internet ?

Pourquoi surveiller la vitesse de son Internet ?

Vérifier la qualité de service de votre FAI

Surveiller la vitesse de votre connexion vous permet de vérifier si votre fournisseur d’accès Internet (FAI) respecte bien les débits annoncés dans votre contrat. En disposant de mesures précises et régulières, vous pouvez appuyer vos réclamations en cas de performances inférieures aux engagements commerciaux.

Détecter les ralentissements et instabilités

Un suivi continu met rapidement en évidence des chutes de débit ou des hausses de latence, même si elles sont temporaires. Cela permet d’identifier des problèmes récurrents, qu’ils soient dus à votre FAI, à une saturation du réseau ou à un équipement défectueux.

Optimiser les performances réseau

En analysant les résultats sur la durée, vous pouvez repérer les périodes où votre connexion est la plus sollicitée et ajuster votre configuration réseau. Cela peut passer par un meilleur placement du routeur, un changement de canal Wi-Fi ou la mise à jour du matériel.

Cas pratiques : télétravail, streaming, gaming

Pour le télétravail, une connexion stable garantit des visioconférences fluides et un accès sans interruption aux outils en ligne. Les amateurs de streaming profiteront d’une meilleure qualité vidéo sans mise en mémoire tampon. Quant aux joueurs en ligne, un suivi précis du ping et de la stabilité de la connexion est essentiel pour éviter la latence et rester compétitif.

Installation de Speedtest Tracker avec Docker et Traefik

Si vous suivez les articles de ce blog, vous devez commencer à connaitre la routine.

Etape 1 : Création d’une entrée DNS sur son nom de domaine

Création d’une entrée DNS sur son nom de domaine

Mon nom de domaine est géré par OVH. N’ayant pas d’IP Statique j’utilise la fonctionnalitéDynHost de OVH

Lors de la déclaration de mon entrée DNS , je ne déclare pas un enregistrement de type A mais un CNAME pour gérer la volatilité de mon IP publique de mon accès internet.

Etape 2 : Création du fichier docker-compose

Le fichier docker-compose est très simple. j’ai choisi d’utiliser une base SQLite pour gérer l’historique mais vous pouvez utiliser une base MariaDB, MySQL ou Postgres.

Comme d’habitude vous trouverez mon fichier docker-compose sur mon github : https://github.com/networkpulse/docker-compose-speedtest-tracker

Une clé d'application (APP_KEY) est utilisée pour le chiffrement. Il s'agit d'une chaîne codée en base64 qui est utilisée par Speedtest Tracker pour chiffrer et déchiffrer des données, telles que les sessions utilisateur et d'autres informations sensibles, et qui est requise dans le cadre du processus de configuration.

Pour générer cette clé vous pouvez utiliser la commande suivante sous Linux :

echo -n 'base64:'; openssl rand -base64 32;
Générer une clé d'application (APP_KEY) utilisée pour le chiffrement sous Linux avec OpenSSL

Voici mon fichier docker-compose avec prise en charge de Traefik V3 :

Fichier docker-compose avec prise en charge de Traefik V3
  • 1: PUID et PGID (obligatoire) : vous devez mettre ici la valeur qui correspond à votre ID utilisateur que vous utiliser sur votre serveur. Pour trouver l’id sous Linux d’un utilisateur il suffit d’utiliser la commande id
Pour trouver l’id sous Linux d’un utilisateur il suffit d’utiliser la commande id
  • 2: APP_KEY (obligatoire) : Clé utilisée pour chiffrer et déchiffrer les données.  
  • 3: DB_CONNECTION: Speedtest Tracker prend en charge plusieurs pilotes de base de données, notamment SQLite, MySQL et Postgres. J’ai choisi SQLite pour sa simplicité de mise en place et ne pas alourdir ma stack avec une gestion de base de données.
  • 4: APP_URL et ASSET_URL: la première sert pour pour les URL utilisée pour les liens dans les e-mails et les notifications et la deuxième pour les ressources, nécessaire lors de l'utilisation d'un proxy inverse comme Traefik
  • 5: SPEEDTEST_SCHEDULE: j’utilise cette variable pour programmer des tests automatique, si vous n’utilisez pas cette variable il faudra déclencher manuellement un test de débit. Il existe de nombreuses autres variables pour modifier l’interface et le comportement de speedtest-tracker, vous pouvez les consulter sur la documentation officielle : Inventaire complet de toutes les variables d'environnement permettant de configurer Speedtest Tracker (https://docs.speedtest-tracker.dev/getting-started/environment-variables). 
  • 6: SPEEDTEST_SERVERS: Liste séparée par des virgules des identifiants de serveurs à utiliser de manière aléatoire pour le test de vitesse. Le but du jeu est d’utiliser toujours le même serveur au plus proche de chez vous. Lorsque vous allez créer votre premier test, vous aurez une liste avec la localisation des serveurs, sinon vous pouvez utiliser une commande à l’intérieur du container pour afficher les serveurs disponibles. Biensûr vous pouvez utiliser plusieurs serveurs  sur cette ligne ou cas où un serait indisponible.

J’utilise Portainer pour gérer mes stacks docker-compose, il faut suffit donc de copier le contenu du fichier dans Votre-Instance -> Stacks -> Editor -> Deploy/Update the stack

Déploiement du fichier docker-compose de Speedtest-Tracker avec Portainer

Utilisation de SpeedTest-Tracker

Une fois avoir lancé votre container, vous devriez arriver sur cette page.

Cliquer sur Sign In / Admin Panel

Utilisation de SpeedTest-Tracker

Les identifiants par défaut pour se connecter la première fois sont : admin@example.com/password

Première connexion dans Speedtest Tracker
Interface principale de Speedtest Tracker

Création d’un nouvel utilisateur

C’est la première tâche à réaliser pour sécuriser votre installation. Cliquer sur Users -> New user

Création d’un nouvel utilisateur dans l'interface de SpeedTest Tracker
💡
N’oublier pas d’affecter le Rôle Admin à votre utilisateur. N’oublier pas de vous déconnecter, puis vous reconnectez avec votre identifiant et supprimer l’identifiant Admin par défaut.
Pour plus de sécurité supprimer l'utilisateur par défaut Admin

Créer une notification

J’aime bien recevoir sur mon téléphone les notifications pour me tenir informé des alertes ou des actions réalisées sur mon environnement. Pour cela j’utilise un serveur NTFY en selfhosted. (j'ai préparé un tutoriel pour sa mise en place, c'est vraiment très pratique pour centraliser ses notifications pour ses environnements)

Aller dans Settings -> Notifications -> Ntfy -> Add to Webhook et rentrer les informations de configuration. Le logiciel utilise de nombreuses autres moyens de notifications mail, discord, ... .

Utiliser les notifications avec Ntfy ou Apprise pour être averti d'un changement
💡
Toutes ces notifications vont être dépréciées dans une nouvelle version, remplacé par Apprise.

J’ai activé les notifications à chaque test pour avoir une idée du débit de ma connexion, mais aussi en fonction des limites de performances que j’ai défini dans l’onglet Tresholds pour le ping, débit, jitter, ...

Si vous souhaitez être notifié uniquement en fonction de certain seuil, utiliser les Thresholds de SpeedTest Tracker

Concrètement,  si le download est inférieur à 900 ou l’Upload inférieur à 800 ou le Ping est supérieur à 10 ms une alerte est envoyée.

Lancer son premier test de vitesse

Avant de définir vos thresholds, vous devez effectuer un premier test de débit qui va servir de référence.

Cliquer sur le bouton Speedtest -> (sélectionner le serveur le plus proche de chez vous) -> Start

Pour des tests plus précis choisissez un serveur proche de chez vous

Pour connaitre les résultats ou le statut du test, vous pouvez consulter l’onglet Résults.

Le statut du test se trouve dans la colonne Status, ici Running
Le statut du test se trouve dans la colonne Status, ici Completed

Pour une vue plus graphique et complète cliquer sur Dashboard -> Metrics (en haut à droite)

Sélectionner la vue graphique pour voir l'évolution des courbes des tests

FAQ 

Peux-tu m’expliquer la notion de PUID et de GUID sous Linux ?

  • PUID (Process User ID) : identifiant unique de l’utilisateur sous lequel un processus s’exécute dans un système (souvent lié aux permissions).
  • PGUID (Process Group ID) : identifiant unique attribué au groupe de processus, utilisé pour gérer et contrôler plusieurs processus ensemble.

Maintenant une explication appliquée à Docker :

  • PUID (Process User ID) : Dans Docker, il sert à définir l’utilisateur UNIX qui exécute les processus dans le conteneur.

Exemple : PUID=1000 → le conteneur tourne avec l’UID 1000 (souvent l’utilisateur principal de ta machine hôte).

  • PGID (Process Group ID) : Définit le groupe UNIX associé.

Exemple : PGID=1000 → le conteneur hérite des droits du groupe 1000 de ta machine.

Pourquoi c’est utile ?

Ça évite les problèmes de permissions quand tu montes des volumes (/mnt/data, /downloads etc.).

Si l’UID/GID du conteneur ne correspond pas à celui de ton utilisateur hôte, tu risques de te retrouver avec des fichiers inaccessibles.

Pour trouver  le PUID et le PGUID d’un utilisateur, il faut utiliser la commande id sous Linux.

Comment afficher la liste des serveurs disponibles à l’intérieur du container speedtest-tracker ?

C’est simple il suffit d’utiliser la commande : 

docker exec (nom-container) php /app/www/artisan app:ookla-list-servers

Comment analyser et interpréter les résultats de Speedtest-Tracker ?

Lecture des graphiques de débit descendant / montant

Les graphiques générés par Speedtest Tracker vous permettent de visualiser facilement l’évolution de votre débit descendant (download) et montant (upload).

Un débit descendant stable et conforme à votre offre garantit un bon confort pour le streaming ou le téléchargement, tandis qu’un débit montant suffisant est essentiel pour l’envoi de fichiers volumineux ou les visioconférences.

Comprendre la latence (ping)

La latence, ou « ping », mesure le temps de réponse entre votre appareil et le serveur de test. Plus cette valeur est basse, plus votre connexion est réactive. Une latence élevée peut entraîner des retards perceptibles lors de la navigation, des appels en visioconférence ou des parties de jeux en ligne.

Comprendre le jitter

Le jitter correspond à la variation de la latence au fil du temps. Même si votre ping moyen est correct, un jitter élevé peut provoquer des microcoupures, des freezes en streaming ou des saccades en gaming. C’est un indicateur clé pour juger de la stabilité de la connexion, et non seulement de sa vitesse brute.

Identifier les périodes de ralentissement

Grâce à l’historique et aux relevés automatiques, vous pouvez repérer les plages horaires où votre connexion devient plus lente ou instable. Ces ralentissements peuvent être liés à une surcharge du réseau chez votre FAI, à des pics d’utilisation dans votre foyer ou encore à des problèmes techniques récurrents.

Ces informations vous aident à cibler l’origine du problème et à argumenter auprès de votre fournisseur si nécessaire.

C’est pour ça que j’ai programmé un test à 3h du matin en pleine nuit et un autre à 15h en pleine journée. je pense qu’il serait aussi intéressant de faire un test entre 20h00 et 21h00, période très consommatrice de bande passante en France.

Comment mettre à l’heure votre container Speedtest-Tracker ?

Par défaut, les containers utilisent l’heure UTC sauf si tu leur donnes explicitement ton fuseau horaire. La bonne pratique est d’utiliser la variable d’environnement TZ (Time Zone). Voila ce que cela peut donner dans un fichier docker-compose :

services:
    speedtest-tracker:
        image: ...
        environment:
               - TZ=Europe/Paris

👉  Remplace Europe/Paris par ton fuseau horaire exact (par exemple Europe/Brussels, America/Montreal, etc.). Sous Linux la liste complète des fuseaux est disponible dans le répertoire  /usr/share/zoneinfo.

Signature
Par Guillaume REYNAUD profile image Guillaume REYNAUD
Mis à jour le
Auto-Hébergement