Synology [Tuto] Installation de Speedtest-Tracker en Docker sur un NAS Synology ( docker-compose )

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 161
1 564
278
/var/run/docker.sock
Cette application n'est plus maintenue par son développeur, retrouver une autre version de Speedtest Tracker, et son tutoriel d'installation ici : [Tuto] Installation de Speedtest Tracker en Docker





Bonjour,
Un nouveau petit tuto pour vous faire découvrir Speedtest tracker en Docker sur votre NAS Synology.

Ce programme exécute un contrôle de vitesse toutes les heures et trace les résultats.
Le back-end est écrit en Laravel et le front-end utilise React.
Il utilise le package cli speedtest d'Ookla pour obtenir les données et utilise Chart.js pour tracer les résultats.

Une démo est disponible ici.

Avertissement: Vous devrez accepter le CLUF d'Ookla et les accords de confidentialité pour utiliser ce conteneur.

Exemple :
78822484-a82b8300-79ca-11ea-8525-fdeae496a0bd.gif


Pré-Requis :
Avoir un NAS Synology compatible avec Docker.
[Tuto] Connaitre le PUID / PGID d'un utilisateur.

Sommaire :
1/ Création du dossier d'installation
2/ Récupération du PUID / PGID
3/ Installation via Docker-compose
4/ Accès à l'interface et quelques réglages
5/ Réglage des intervalles de test
Debug 1 : Les speedtests automatique ne fonctionne pas



1/ Création du dossier d'installation

Speedtest-Tracker à besoin d'un dossier sur le NAS, ou il va pouvoir s'installer, enregistrer sa database, ...
Dans mon cas, j'ai choisi de le mettre dans un dossier partagé "docker" qui est sur le volume1 de mon NAS, j'y est donc créé un dossier "speedtest-tracker" et dans ce dossier un dossier "config".
Le chemin d’accès a ces dossiers, pour ce tuto, sera donc /volume1/docker/speedtest-tracker/config, il sera à modifier suivant vos choix.

2/ Récupération du PUID / PGID
Il va falloir associer notre conteneur à l'utilisateur du NAS, pour cela il faut connaitre le PUID et le PGID de cette utilisateur, pour cela, je vous laisse utiliser ce tuto : [Tuto] Connaitre le PUID / PGID d'un utilisateur.
On notera le PUID/PGID de l'utilisateur choisi, on va en avoir besoin juste après !

Installation via Docker-compose

Nous allons maintenant créer un fichier "docker-compose.yml" avec les paramètres du conteneur.
Celui-ci est a placer dans /volume1/docker/speedtest-tracker

Code:
version: '3.3'
services:
    speedtest:
        container_name: speedtest
        image: henrywhitaker3/speedtest-tracker
        ports:
            - 8765:80
        volumes:
            - /volume1/docker/speedtest-tracker/config:/config
        environment:
            - TZ=Europe/Paris
            - PGID=100
            - PUID=1000
            - OOKLA_EULA_GDPR=true
        logging:
            driver: "json-file"
            options:
                max-file: "10"
                max-size: "200k"
        restart: unless-stopped

Au besoin, le compose est aussi téléchargeable ici : Voir la pièce jointe docker-compose speedtest-tracker.7z

Dans le compose, certains paramètres sont a modifier suivant votre configuration :
/volume1/docker/speedtest-tracker/config par le chemin vers votre dossier /speedtest-tracker/config.

PGID, Group id**( dans mon exemple c'est 100 )
PUID, User id** ( dans mon exemple c'est 1000 )

** Point 2/ du tuto

Une fois placer ce fichier docker-compose.yml dans votre dossier /volume1/docker/speedtest-tracker

En SSH, rendez-vous dans le dossier en question :

Code:
cd /volume1/docker/speedtest-tracker

Ensuite, afin "d’exécuter" mon fichier docker-compose.yml, je tape en ssh :

Code:
sudo docker-compose up -d

La création du conteneur se fait, il devient visible dans l'appli "Docker" de DSM.

4/ Accès à l'interface et quelques réglages
Dans votre navigateur, il vous suffit maintenant de taper l'adresse ip de votre NAS suivi du port 8765 pour se connecter a l'interface Web de Speedtest-Tracker.
Exemple : Si l'ip de votre NAS est 192.168.0.20 alors l'adresse est http://192.168.0.20:8765
Bien sur, si le pare-feu de votre NAS est actif, ce port devra être autorisé dans celui-ci !

Ps : Par défaut, le speedtest s’exécute toutes les heures "pile".

5/ Réglage des intervalles de test
Dans General settings, il est possible, entre autre, de modifier les intervalles de test :
wnBfRHl.png

64rGBe5.png


Sur le screen ci -dessus, on peu voir "Schedule" : 0 * * * *
Qui signifie "Tous les mois, tous les jours, toutes les heures piles", c'est la valeur par defaut ! A chaque heure pile, il fait un test.
On peu par exemple, fait le test 2 fois, par heure, a l'heure pile et a la demi-heure comme ceci : 0,30 * * * *
Comme sugéré par speedtest-tracker, a cette adresse vous trouverez une aide pour Cron : https://crontab.guru

Debug 1 : Les speedtests automatique ne fonctionne pas
Si vous avez cette ligne dans les logs du conteneur : "speedtest --accept-gdpr"

Alors a "l'intérieur du conteneur", il faut exécuter la commande suivante afin d'accepter les conditions :
Code:
php /config/www/artisan speedtest:eula

Soit via la console de DockerDSM sur le conteneur, ou la console de Portainer, il est aussi possible de le faire en SSH avec la commande suivante :
Code:
docker exec -it speedtest bash

2021-08-08 - Ajout de Debug 1, en cas de soucis avec les speedtest auto.
 
Dernière édition:
Salut EVOTk, :D

Tout d'abord merci pour ce tuto super bien fait!

Lors de l'installation via Kitty j'ai eu une erreur (malheureusement j'ai fermé trop vite et je ne l'ai plus…) :?

j'ai désinstallé Docker et tout recommencé, l'installation c'est bien faite. :D

5.jpg


Cependant je n'arrive malheureusement pas à concrétiser, je n'arrive pas a avoir la page de configuration.
3.jpg


J'ai pourtant bien vérifier que les règles du pare feu soit ok (j'ai essayé en le désactivant aussi, pareil)
4.jpg


Autre choses que je remarque c'est que le temps de disponibilité ne dépasse pas 1min, comme si il redémarrait en boucle.
2.jpg


Si tu as une idée du pourquoi :?:

Merci d'avance :)

Logiik :geek:
 
Salut EVOTk, :D

Merci de ta réponse, cependant, o_O

6.jpg


Voila, ou alors je ne suis pas au bon endroit :rolleyes:

----
UP : J'ai forcé l'arrêt et relancé et maintenant j'ai le conteneur qui plante non stop.
7.jpg



Merci d'avance :)

Logiik :geek:
 
Alors EVOTk, :D

Encore merci pour ton temps :!: :D

Voici 2 screens, car il y a beaucoup Beaucoup de logs, celui ci, c'est le premier log.
||Modif : voici le lien de l'image pour une meilleur qualité : https://postimg.cc/vc8RdwZm ||
8.jpg



Ensuite c'est à chaque fois le même en boucle.
9.jpg



Merci à toi :)

Logiik :geek:
 
Visiblement il n'arrive pas a récupérer speedtest le lien est mort dans le conteneur peut etre, je regarde plus précisément ce soir.
Au besoin je te ferai un pack avec mon fichier afin que tu le récupere de cette facon
 
Logiik a dit:
Alors EVOTk, :D

Encore merci pour ton temps :!: :D

Re :)

Voici un fichier "speedtest"* a télécharger ici, celui ci est a placer ( conteneur a l'arret ) dans le dossier /config/www/app/Bin du montage de ton conteneur.

Edit : C'est effectivement un probleme avec le conteneur , la modif a etait proposé pour la MAJ du conteneur, mais elle n'a pas encore était appliqué :https://github.com/henrywhitaker3/Speedtest-Tracker/pull/594/commits/4e9fbe6742583d81f012dbdf25b46ee22a01c5b5
Ensuite redémarre le conteneur et dit moi se qu'il en est :)

Le nom du fichier doit etre uniquement speedtest, sans extension, ni rien.
 
Re EVOTk :)

Alors MIEUX :!: :!:

J'ai accès à l'interface :geek:

Mais, il y à toujours un mais :cry:
11.jpg


Alors j'ai quand même bien vérifier que la bête est bien connecté et à accès au net :lol: :lol:

donc j'ai refais la commande log (car toujours rien dans le journal du conteneur) et voici :
12.jpg

10.jpg


Merci d'avance,

Logiik :geek:
 
Salut Etrange tout ceci, il y a du avoir une MAJ entre mon tuto est maintenant !
Il faudrai que je reprenne une clean install a un moment pour voir cela !

Pour executer la commande qu'il te demande, il faut l'executer dans le conteneur, donc essaye ceci :

Code:
sudo docker exec -it speedtest bash

Puis :

Code:
speedtest --accept-license

Ensuite pour sortir :
Code:
exit
 
Re EVOTk, :D

C'était dur, c'étais long mais il n'a rien lâché, MERCI :!: :!:
1.jpg


:giggle: :giggle:

Clairement sans ton aide j'aurai abandonné… et peut être que tout cela pourra en aider d'autres :!:

Logiik :geek:
 
Logiik a dit:
Re EVOTk, :D

C'était dur, c'étais long mais il n'a rien lâché, MERCI :!: :!:

Pas de soucis :) Visiblement l'image semble avoir besoin d'une bonne MAJ en espérent que le développeur maintienne encore son image, et qu'elle soit mise a jour bientot !

Logiik a dit:
Clairement sans ton aide j'aurai abandonné… et peut être que tout cela pourra en aider d'autres :!:

C'est le but du forum, s'entraider et également laisser une trace qui peu servir pour d'autres :)
 
Logiik a dit:

Je viens de voir que tu as aussi cette erreur :
ZNlaeMr.png


A voir si elle n'est pas gênante pour les test auto par exemple ? ou ne provoque pas de bug

Tu devrai pouvoir la corriger comme ceci : ( conteneur a l'arret )
En SSH :

Mise a l'arret du conteneur :
Code:
sudo docker stop speedtest

Aller dans le dossier contenant le fichier speedtest ( dans mon cas c'est dans /volume1/docker/speedtest/ a voir si c'est pareil chez toi )

Code:
cd /volume1/docker/speedtest/config/www/app/Bin

Puis rendre speedtest executable :

Code:
sudo chmod +x speedtest



Redémarrer le conteneur :
Code:
sudo docker start speedtest
 
Re EVOTk, :D


J'ai bien fait les commandes et ils c'est lancé nickel et il à bien fait le Speedtest à l'heure pile :!:

[cont-init.d] 40-config: exited 0.
[cont-init.d] 50-speedtest: executing...
Copying latest site files to config

L'erreur à bien disparue :!: :lol:

Merci :giggle:

Logiik :geek:
 
Salut !

Je lurke un peu ce topic depuis quelques jours.
Depuis que j'ai la fibre Free, je suis intéressé par suivre les débits et voir quand il y a des creux.

Dans mon cas, j'ai installé speedtest-tracker via docker sur openmediavault - en me basant sur https://hub.docker.com/r/henrywhitaker3/speedtest-tracker
C'est un peu HS par rapport à la section NAS - Synology, j'en suis désolé.

C'est assez similaire, je bute au même endroit avec le même message d'erreur dans les logs.

Mini-résumé des actions :

docker pull henrywhitaker3/speedtest-tracker

docker create \
--name=speedtest \
--net macvlan-network \
--ip 192.168.1.243 \
-v /srv/dev-disk-by-id-md-name-openmediavault-RAID5/Config/Docker/speedtest:/config \
-e TZ=Europe/Paris \
-e OOKLA_EULA_GDPR=true \
--restart unless-stopped \
henrywhitaker3/speedtest-tracker

docker start speedtest

Au niveau des droits d'éxécution :


Au niveau des logs :


Résultats :


Si quelqu'un a une idée supplémentaire, je prends :D
Merci à vous
 
Salut,
Kilian67 a dit:
Si quelqu'un a une idée supplémentaire, je prends :D
Merci à vous

As tu rendu le fichier speedtest executable ? ( a faire conteneur a l'arret, puis démarrer le conteneur )

Se rendre dans son dossier :
Code:
cd /srv/dev-disk-by-id-md-name-openmediavault-RAID5/Config/Docker/speedtest/www/app/Bin

Puis rendre speedtest executable :
Code:
chmod +x speedtest
 
D'ou viens cette user:group 911 ?
Il faut que tu fichier appartienne bien au user/group que tu as déclaré a la création du conteneur

Edit :
PUID et GUID PGID et PUID doivent correspondre a tes ID réel de ton user qui a la droit sur le dossier /Docker

Re-Edit :
https://github.com/henrywhitaker3/Speedtest-Tracker
Dans l'image c'est pas PUID et GUID mais PGID et PUID, attention !