← Retour
homelab

Speedtest : installez votre propre testeur de débit avec LibreSpeed

Cédrix · 10/02/2023

LibreSpeed (anciennement connu sous le nom du dépôt adolfintel/speedtest) est un service web libre et open source qui permet de mesurer la vitesse de transfert (débits descendant et montant), la latence et la gigue entre votre poste et un serveur. Auto-hébergé, il offre une alternative respectueuse de la vie privée aux services en ligne comme Speedtest.net, et s'avère particulièrement utile pour diagnostiquer un réseau local ou la qualité de service d'un fournisseur d'accès.

Dans cet article, je vous propose d'installer votre propre instance LibreSpeed sur l'un de vos serveurs. L'installation décrite ici est réalisée sur un Raspberry Pi 4 sous Raspberry Pi OS, sur lequel Apache 2.4 et PHP 8 sont déjà déployés et paramétrés. La procédure reste applicable à n'importe quel serveur Linux/Apache/PHP.

Prérequis

  • Un serveur web Apache 2
  • PHP 7.4 ou supérieur (PHP 8.0+ recommandé, requis pour la détection FAI et distance)
  • Une connexion réseau confortable côté serveur. À noter que le Raspberry Pi 4 plafonne autour de 400-700 Mbps utiles en conditions réelles (CPU + Apache + PHP) ; il convient parfaitement pour tester un réseau local ou une connexion jusqu'à environ 500 Mbps, mais ne permettra pas de mesurer fidèlement une fibre 1 Gbit/s ou plus. Pour ces débits, un Pi 5 ou un serveur x86 sera mieux adapté.
  • Le serveur web doit accepter les requêtes POST volumineuses (jusqu'à 20 Mo)
  • git installé sur la machine

Installation

Placez-vous dans votre répertoire personnel et clonez le dépôt officiel de LibreSpeed :

cd ~
git clone https://github.com/librespeed/speedtest.git

Créez le répertoire de destination sous la racine d'Apache, puis copiez les fichiers nécessaires :

sudo mkdir /var/www/html/speedtest
cd speedtest
sudo cp -R backend example-singleServer-pretty.html *.js /var/www/html/speedtest

💡 Astuce : plusieurs interfaces sont disponibles dans le dépôt. example-singleServer-pretty.html propose une interface élégante, example-singleServer-gauges.html affiche des jauges façon tableau de bord, et example-singleServer-full.html inclut la télémétrie (sauvegarde des résultats). Choisissez celle qui correspond à votre besoin.

Renommez ensuite la page d'exemple en index.html afin qu'elle s'affiche par défaut, puis attribuez les droits à l'utilisateur d'Apache :

cd /var/www/html/speedtest
sudo mv example-singleServer-pretty.html index.html
sudo chown -R www-data:www-data .

Vérification

Ouvrez votre navigateur et rendez-vous sur http://<adresse-de-votre-serveur>/speedtest. L'interface devrait apparaître ; un clic sur le bouton Start lance le test.

Pour aller plus loin

Si vous souhaitez conserver l'historique des tests, LibreSpeed prend en charge plusieurs systèmes de stockage (MySQL/MariaDB, PostgreSQL, SQLite). Il suffit alors d'utiliser example-singleServer-full.html, de configurer le fichier results/telemetry_settings.php et de créer la base de données associée à partir du script SQL fourni dans le dépôt.

Pour une configuration multi-serveurs ou un déploiement via Docker (image adolfintel/speedtest disponible sur Docker Hub), la documentation officielle dans doc.md couvre ces cas d'usage en détail.

Commentaires 1
Jérémie 15/05/2026 à 15h04
Merci pour ce tutoriel, LibreSpeed est une excellente alternative libre à Speedtest et ce contenu en français sur l'auto-hébergement est précieux. Quelques remarques cependant.
Le point essentiel à préciser dès l'intro : un speedtest auto-hébergé ne mesure pas la même chose qu'un Speedtest public. Si le serveur est sur la même connexion que le client, ou chez le même FAI, on mesure surtout le débit interne ou le peering local, pas le débit Internet réel. Voir 900 Mbit/s en local et 300 sur Speedtest.net ne veut pas dire que Speedtest ment, les deux disent la vérité sur des choses différentes. La bande passante du serveur compte aussi : un VPS 1 Gbit/s plafonnera une fibre 2 Gbit/s sans que la connexion testée soit en cause.
Côté production, il manque un mot sur HTTPS via Let's Encrypt, la restriction d'accès si l'instance n'est pas publique, et le CORS. Sans ça, on offre de la bande passante à n'importe quel bot qui scanne ce type d'endpoints.
Sur la méthodo, comparer uniquement à Speedtest est réducteur : iPerf3 pour le diagnostic bas niveau, Fast.com pour le streaming, nPerf pour la latence et le jitter. Chacun a son biais selon le besoin réel.
Une capture d'écran finale et une section dépannage (CORS, getIP, ports bloqués) rendraient le tout plus actionnable. Merci encore pour le partage.
Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.