Installer Speedtest-tracker avec Docker
Speedtest-tracker

Installer Speedtest-tracker avec Docker

Table des matières

GitHub - linuxserver/docker-speedtest-tracker
Contribute to linuxserver/docker-speedtest-tracker development by creating an account on GitHub.
⚠️
Dorénavant le fichier docker-compose.yml sera compose.yml car docker-compose.yml est déprécié. docker-compose.yml est toujours supporté, mais un jour ou l'autre ça sera supprimé donc autant passer à compose.y(a)ml.
Si pour une raison ou une autre cela ne fonctionne pas, continuez avec docker-compose.y(a)ml et venez sur Discord ou Matrix pour en discuter.
Merci à titof pour la suggestion! 🤝

Contrôlez sa connexion manuellement et régulièrement peut devenir chronophage. Pourquoi ne pas déléguer ça à une application?

Aujourd'hui nous allons parler de Speedtest-tracker! Cette application vous permettra d'avoir une vue globale des tests de vitesse de votre connexion et éventuellement de détecter une anomalie et d'en être notifié.

⚠️
Hydratez-vous bien, avec de l'eau, pas de la crème hydratante 😃!
Si vous avez des voisins âgés, inquiétez-vous d'eux. ❤️

⚡Caractéristiques

  • Afficher les résultats les plus récents.
  • De jolis graphiques.
  • Historique des résultats échoués et réussis.
  • Filtrer: planifié et réussi.
  • Exporter les résultats sélectionnés au format CSV.
  • Tests programmés.
  • Test ponctuel.
  • Spécifier manuellement un serveur.
  • Spécifier manuellement une liste de serveurs.
  • Alertes de seuil.
  • Sauvegarde / Restauration.
  • Notifications.
  • Mode sombre | Mode clair

💾 L'installation

La toute première première chose à faire est de se munir d'une clé API que vous pouvez trouver ici:

Speedtest Tracker - Self-hosted internet performance tracking.
Speedtest Tracker is a self-hosted internet performance tracking application that runs speedtest checks against Ookla’s Speedtest service.
  1. Copiez la clé API proposée en faisant un clic gauche avec votre souris sur la clé:

Notez quelque par cette clé, vous en aurez besoin dans peu de temps.

  1. Créez votre compose.yml dans le dossier où vous comptez installer Speedtest-tracker:
sudo nano compose.yml
  1. Collez ça dedans en prenant soin d'adapter les ports et les volumes suivant votre configuration:
version: "3.9"
services:
  speedtest-tracker:
    image: lscr.io/linuxserver/speedtest-tracker:latest
    container_name: speedtest-tracker
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - APP_KEY=base64:UurCRbfYF29PHgFwTh5qYKqa1AEr9CaZ0v7PHyflokE=
      - DB_CONNECTION=sqlite
      - SPEEDTEST_SCHEDULE=0 */1 * * *
      - SPEEDTEST_SERVERS=63249
      - PRUNE_RESULTS_OLDER_THAN=30
    volumes:
      - ./data:/config
    ports:
      - 4114:80
    restart: unless-stopped

Veillez à indiquer la clé API:

  • - APP_KEY= => Collez la clé API générée précédemment.

Vous pouvez changer:

  • - PRUNE_RESULTS_OLDER_THAN=30 => Tous les résultats au-delà de 30 jours seront supprimés. Libre à vous de changer cette valeur.
  • - SPEEDTEST_SCHEDULE=0 */1 * * * => Réglé de cette façon, le test se fera chaque heure. Vous pouvez choisir un autre timing à l'aide de ce site.
  • - SPEEDTEST_SERVERS= => Pour choisir le serveur le plus proche de chez vous, tapez cette commande dans votre terminal:
docker exec speedtest-tracker php /app/www/artisan app:ookla-list-servers

Ce qui donne:

Dans mon cas je vais prendre le premier avec l'id 63249. Choisissez toujours le serveur le plus proche. Vous pouvez en ajouter plusieurs du moment qu'une virgule sépare chaque id.

  1. On va déployer l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 4114 par défaut:
http://ip:4114/

ou votre domaine:

https://mondomaine.com

🔌 Première connexion

Lorsque vous lancez pour la première fois l'application, il faudra vous connecter en utilisant le compte admin par défaut:

  • Email address =>admin@example.com
  • Password => password

Cliquez sur Sign in pour terminer.

Vous arriverez sur votre tableau de bord:


👤 Modifier le compte utilisateur par défaut

C'est dans cette partie que vous pouvez éditer votre compte par défaut ou ajouter un utilisateur en cliquant sur New user.

Il est préférable de changer, au minimum, le mot de passe par défaut. Cliquez sur Users:

Cliquez sur les trois points en bout de ligne et cliquez sur Edit:

Complétez les informations:

  • Name => Choisissez votre nom d'utilisateur.
  • Email => Choisissez un e-mail.
  • New Password => Choisissez un mot de passe fort.
  • Confirm New Password => Confirez votre mot de passe.
  • Role => C'est ici que vous pouvez définir un rôle si vous veniez à créer un autre utilisateur.

Cliquez sur Save changes pour terminer.


🚀 Lancer son premier test de vitesse

Pour effectuer un test manuellement, cliquez en haut à droite sur 🚀 Run Speedtest et cliquez sur Ookla speedtest:

Après quelques secondes, vous aurez le résultat:


📜 Historique des tests de vitesse

Cliquez sur Results:

Voici votre historique:


🔔 Notifications

Il existe différentes options pour recevoir une notification.

Toutes les possibilités de notification se trouvent dans Notifications.

Cliquez sur Notifications:

Database

La plus facile c'est celle qui sera affichée dans la page web elle-même; sous cette forme:

Dans la partie Database, cochez Enable database notifications:

Triggers:

  • Notify on every speedtest run => Activez cette option si vous souhaitez une notification à chaque test de vitesse.
  • Notify on threshold failures => Activez cette option si un seuil est atteint. Voir la partie juste après les notifications pour configurer un seuil.

Vous pouvez vous assurer que cela fonctionne en cliquant sur Test database channel:

Vous aurez une confirmation de ce type:

N'oubliez pas de sauver les changements tout dans le fond de la page en cliquant sur Save changes:

Discord

En premier il va falloir créer un webhook dans Discord.

Rendez-vous sur votre serveur Discord et cliquez sur Paramètres du serveur:

Ensuite cliquez sur Intégrations:

Cliquez sur Créer un webhook:

Discord va créer un webhook, cliquez dessus:

Configurez votre webhook:

  • Nom => Nommez-le comme vous voulez.
  • Salon => Choisissez dans quel salon le message doit-être envoyé.
  • Facultatif, vous pouvez choisir une icône.

Copiez l'URL du webhook (gardez l'URL au chaud pour après) et terminez en cliquant sur Enregistrer les notifications:

Rendez-vous dans la partie Notifications de Speedtest-tracker:

Cochez Enable Discord webhook notifications:

Triggers:

  • Notify on every speedtest run => Activez cette option si vous souhaitez une notification à chaque test de vitesse.
  • Notify on threshold failures => Activez cette option si un seuil est atteint. Voir la partie juste après les notifications pour configurer un seuil.

Cliquez sur:

Ajoutez l'URL du webhook créé précédemment:

Vous pouvez tester si cela fonctionne bien en cliquant sur:

Ce qui donne:

N'oubliez pas de sauver les changements tout dans le fond de la page en cliquant sur Save changes:

Voici à quoi ressemble une notification Discord:

E-mail

Si vous avez votre propre serveur mail, vous connaissez déjà les informations de celui-ci qu'il faudra indiquer plus bas.

Si vous n'avez pas votre propre serveur mail il est possible d'utiliser ceux de Gmail, Outlook, Informaniak,.. Je vous invite à lire l'article suivant pour avoir les informations nécessaires:

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.

Il va falloir maintenant éditer le fichier compose.yml et ajouter ce bloc que vous prendre soin d'éditer avec les informations du serveur mail:

- MAIL_MAILER=smtp
- MAIL_HOST=smtp.xxx.xx
- MAIL_PORT=587
- MAIL_USERNAME=zarev@beglinux.com
- MAIL_PASSWORD=MonMotDePasse
- MAIL_ENCRYPTION=tls
- MAIL_FROM_ADDRESS="zarev@belginux.com"
- MAIL_FROM_NAME="belginux"

Ce qui donne:

version: "3.9"
services:
  speedtest-tracker:
    image: lscr.io/linuxserver/speedtest-tracker:latest
    container_name: speedtest-tracker
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - APP_KEY=base64:UurCRbfYF29PHgFwTh5qYKqa1AEr9CaZ0v7PHyflokE=
      - DB_CONNECTION=sqlite
      - SPEEDTEST_SCHEDULE=* * * * *
      - SPEEDTEST_SERVERS=63249,54889,5151
      - PRUNE_RESULTS_OLDER_THAN=30
      - MAIL_MAILER=smtp
      - MAIL_HOST=smtp.xxx.xxx
      - MAIL_PORT=587
      - MAIL_USERNAME=zarev@belginux.com
      - MAIL_PASSWORD=MonMotDePasse
      - MAIL_ENCRYPTION=tls
      - MAIL_FROM_ADDRESS="zarev@belginux.com"
      - MAIL_FROM_NAME="belginux"
    volumes:
      - ./data:/config
    ports:
      - 4114:80
    restart: unless-stopped
  • - MAIL_MAILER=smtp => Ne changez pas ce paramètre.
  • - MAIL_HOST=smtp.xxx.xxx => Indiquez le serveur SMTP.
  • - MAIL_PORT=587 => 587 de préférence.
  • - MAIL_USERNAME=zarev@beglinux.com => Indiquez l'adresse e-mail.
  • - MAIL_PASSWORD=MonMotDePasse => Indiquez le mot de passe de l'adresse e-mail.
  • - MAIL_ENCRYPTION=tls => tls de préférence.
  • - MAIL_FROM_ADDRESS="zarev@belginux.com" => Indiquez l'adresse e-mail de l'expéditeur.
  • - MAIL_FROM_NAME="belginux" => Indiquez un nom au choix. Le vôtre, celui de votre site,...

Rendez-vous dans la partie Notifications de Speedtest-tracker:

Cochez Enable mail notifications:

Triggers:

  • Notify on every speedtest run => Activez cette option si vous souhaitez une notification à chaque test de vitesse.
  • Notify on threshold failures => Activez cette option si un seuil est atteint. Voir la partie juste après les notifications pour configurer un seuil.

Vous pouvez tester si cela fonctionne bien en cliquant sur:

Ce qui donne:

N'oubliez pas de sauver les changements tout dans le fond de la page en cliquant sur Save changes:

Notifications par e-mail:


📛 Thresholds

Thresholds, qui veut littéralement dire "seuils", va permettre de détecter une anomalie sur votre connexion internet. Imaginons que votre vitesse soit de 200 Mbps et que lors d'un test, si bien entendu vous ne pompez pas votre connexion internet comme un goret, vous avez 12 Mbps, il y a une anomalie, en activant l'option thresholds, vous serez averti de ce problème.

Bien entendu cela peut détecter aussi un ping exécrable.

💡
Lorsqu'un seuil est déclenché, il est envoyé aux canaux de notification.
Il conviendra d'ajouter un système de notification.

Cliquez sur Thresholds:

Ensuite cochez Enable absolute thresholds et remplissez les seuils suivant vos désirs:

💡
Notez que vous pouvez par exemple, n'activer l'alerte pour pour le ping, par exemple. Dans ce cas, désactivez les autres options en mettant un 0 et n'ajoutez une valeur que pour le ping.
  • Download => Indiquez le seuil souhaité pour le download.
  • Upload => Indiquez le seuil souhaité pour l'upload.
  • Ping => Indiquer le seuil souhaité pour le ping.

Cliquez sur Save changes pour terminer.


zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.