Vous auto-hébergez un test de débit sur votre infrastructure et vous utilisez encore OpenSpeedTest ? Il est peut-être temps de regarder du côté de LibreSpeed. Moins connu, ce projet open source offre pourtant des avantages significatifs, aussi bien en termes de légèreté que de transparence. Voici pourquoi ce changement vaut le coup, et comment l’effectuer proprement avec Docker et Traefik.
OpenSpeedTest : des limites qui finissent par se faire sentir
OpenSpeedTest a longtemps été la solution de référence pour auto-héberger un test de débit. L’interface est propre, le déploiement Docker relativement simple, et ça fonctionne. Mais à l’usage, quelques problèmes finissent par émerger :
- Licence propriétaire : malgré son aspect “self-hosted”, OpenSpeedTest n’est pas un logiciel libre. Le code source de l’interface n’est pas ouvert, ce qui va à l’encontre de l’esprit de l’auto-hébergement.
- Image Docker lourde et opaque : l’image officielle est volumineuse, et il n’est pas toujours facile de savoir ce qu’elle contient réellement.
- Mises à jour peu fréquentes : le projet a des périodes d’inactivité prolongées sur son dépôt GitHub, ce qui soulève des questions sur sa pérennité à long terme.
- Absence de configuration avancée : les options pour personnaliser le comportement du serveur (chunk size, délai du test, etc.) sont quasi inexistantes dans la version auto-hébergée.
- Consommation mémoire : l’overhead de l’application est non négligeable pour ce qui est, au fond, un simple serveur de test réseau.
LibreSpeed : l’alternative libre et légère
LibreSpeed est un projet entièrement open source (licence GNU LGPL v3), né de la volonté de proposer une alternative à Speedtest.net sans dépendance à des serveurs tiers. Le backend Docker est maintenu par la communauté linuxserver.io, garantissant des mises à jour régulières et une image construite de manière reproductible.
Ce que LibreSpeed apporte concrètement
| Critère | OpenSpeedTest | LibreSpeed |
|---|---|---|
| Licence | Propriétaire | GNU LGPL v3 (open source) |
| Image Docker | Lourde (~100 Mo+) | Légère (~50 Mo) |
| Mainteneur | Équipe fermée | Communauté (librespeed + linuxserver.io) |
| Mises à jour | Irrégulières | Régulières |
| Personnalisation | Limitée | Variables d’environnement, configuration JSON |
| Configuration Traefik | Manuel | Labels standards |
| Multi-serveur | Non | Oui (liste de serveurs) |
Une mesure plus fiable
LibreSpeed implémente un protocole de test similaire à celui des outils professionnels. Il mesure :
- Le débit descendant (download), via des requêtes HTTP de gros blocs aléatoires.
- Le débit montant (upload), via des POST de données vers le serveur.
- La latence (ping), via des requêtes répétées à intervalles réguliers.
- La gigue (jitter), variation de la latence, souvent négligée par d’autres outils.
Tout se fait sans Flash, sans Java, sans plugin. Le frontend est en HTML5/JavaScript pur, et le backend en PHP ou Go selon l’image choisie.
[!TIP] L’image
ghcr.io/librespeed/speedtestest hébergée sur GitHub Container Registry, ce qui évite les limitations de taux de Docker Hub dans les environnements CI/CD et homelab.
Déploiement avec Docker Compose et Traefik
Voici un exemple de configuration docker-compose.yml prêt à l’emploi pour intégrer LibreSpeed dans une infrastructure Traefik existante.
Prérequis
- Un réseau Docker externe
traefik_gatewaydéjà créé (docker network create traefik_gateway). - Traefik déployé et à l’écoute sur ce réseau.
- Un enregistrement DNS (local ou public) pointant
speed.home.lanvers votre hôte Docker.
docker-compose.yml
services:
librespeed:
image: lscr.io/linuxserver/librespeed:latest
container_name: librespeed
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- CUSTOM_RESULTS=true
- DB_TYPE=sqlite
- PASSWORD="[PASSWORD]"
volumes:
- /rpool/docker/librespeed:/config
restart: unless-stopped
networks:
traefik_gateway:
labels:
traefik.enable: "true"
traefik.docker.network: "traefik_gateway"
traefik.http.services.librespeed.loadbalancer.server.port: "80"
traefik.http.routers.librespeed.rule: "Host(`speed.home.lan`)"
traefik.http.routers.librespeed.entrypoints: "web"
traefik.http.routers.librespeed.tls: "false"
networks:
traefik_gateway:
external: true
Explications des labels Traefik
traefik.enable: "true"— active la découverte automatique du conteneur par Traefik.traefik.docker.network: "traefik_gateway"— précise sur quel réseau Traefik doit router le trafic (indispensable si le conteneur est sur plusieurs réseaux).traefik.http.services.librespeed.loadbalancer.server.port: "8080"— LibreSpeed écoute sur le port 8080 en interne.traefik.http.routers.librespeed.rule— définit la règle de routage par nom d’hôte.traefik.http.routers.librespeed.entrypoints: "web"— utilise l’entrypoint HTTP (port 80). Adaptez àwebsecuresi vous utilisez HTTPS.traefik.http.routers.librespeed.tls: "false"— désactive TLS pour un usage purement interne. À activer si votre entrypoint estwebsecure.
Démarrage
docker compose up -d
Vérifiez que le conteneur est bien démarré et que Traefik a bien pris en compte la configuration :
docker compose ps
docker compose logs -f speedtest
Accédez ensuite à http://speed.home.lan depuis votre réseau local pour lancer un test.
Variantes utiles
Avec HTTPS et Let’s Encrypt
Si Traefik gère vos certificats TLS, il suffit de modifier les labels :
labels:
traefik.enable: "true"
traefik.docker.network: "traefik_gateway"
traefik.http.services.librespeed.loadbalancer.server.port: "80"
traefik.http.routers.librespeed.rule: "Host(`speed.home.lan`)"
traefik.http.routers.librespeed.entrypoints: "websecure"
traefik.http.routers.librespeed.tls: "true"
traefik.http.routers.librespeed.tls.certresolver: "letsencrypt"
Variables d’environnement disponibles
LibreSpeed expose plusieurs variables pour personnaliser son comportement :
environment:
MODE: standalone # standalone ou multiserver
TELEMETRY: "false" # désactive la collecte de données
ENABLE_ID_OBFUSCATION: "true"
PASSWORD: "monmotdepasse" # protège l'accès aux résultats
DISABLE_IPINFO: "false" # affiche les infos IP du client
[!NOTE] En mode
standalone, une seule instance fait office de serveur de test. Le modemultiserverpermet d’exposer plusieurs serveurs géographiquement distribués et de laisser le client choisir le plus proche.
Conclusion
La migration d’OpenSpeedTest vers LibreSpeed est rapide, indolore, et apporte des bénéfices concrets : une image plus légère, un code source auditable, des mises à jour régulières, et une bien meilleure intégration dans un écosystème Docker/Traefik. Pour un homelab soucieux de la qualité et de l’ouverture de ses outils, c’est un choix qui s’impose naturellement.
Sources
- LibreSpeed — Dépôt GitHub officiel
- Image Docker LibreSpeed (GitHub Container Registry)
- LinuxServer.io — Bonne pratiques Docker
- Documentation Traefik — Labels Docker