[Tuto] Installation de Speedtest Tracker en Docker

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 211
1 575
278
/var/run/docker.sock
Bonjour,
Voici un petit tuto, pour ceux qui souhaiterai installer Speedtest Tracker en Docker.

Speedtest Tracker, c'est quoi ? :giggle:
Speedtest Tracker est une application de suivi des performances Internet auto-hébergée qui exécute des contrôles de vitesse avec le service Speedtest d'Ookla. Construit en utilisant Laravel et le CLI Speedtest.

dashboard_screenshot.png

Retrouvez plus d'informations sur Speedtest Tracker ici : https://github.com/alexjustesen/speedtest-tracker

Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert de docker/docker compose, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...

Pour un support sur Speedtest Tracker ne concernant pas une installation via ce tutoriel, merci de poster votre question dans Applications.


Pré-requis :
Avoir Docker et Docker Compose installé sur sa machin, voir [Tuto] Installation de Docker, Docker-compose et Portainer sur Debian 11

A modifier selon votre installation :
Toute mon installation, va ce faire dans un dossier "speedtest-tracker" inclu dans mon dossier "docker"
Je vais donc installer Speedtest Tracker dans docker/speedtest-tracker
Les PUID/PGID de mon compte utilisateur sont : PUID=1000 PGID=1000 **

** Pour connaitre le PUID/GUID de l'utilisateur : [Tuto] Connaitre le PUID / PGID d'un utilisateur.

Sommaire :
1/ Créer les dossiers nécessaires
2/ Le fichier "docker-compose.yml"
3/ Création et démarrage du conteneur
4/ Accès a Speedtest Tracker


Aller go :)



1/ Créer les dossiers nécessaires
Sur le NAS nous allons devoir créer un dossier speedtest-tracker contenant un dossier config et un dossier db.

En SSH, avec la commande cd nous allons accéder au dossier ou vous souhaitez installer les fichiers de configuration du conteneur. Dans mon cas c'est /home/tuto/docker, j’exécute donc la commande suivante pour accéder au dossier docker :

cd /home/tuto/docker

Vous pouvez aussi créer le dossier speedtest-tracker, contenant un dossier config avec cette commande : mkdir -p speedtest-tracker/{config,db}

Ensuite, avec la commande cd speedtest-tracker, rendez-vous dans le dossier principal de Speedtest Tracker que nous venons de créer.

Note : A partir de maintenant, toutes les commandes du tutoriel partirons du principe que vous les exécuter depuis le dossier /speedtest-tracker
[/B]




2/ Le fichier "docker-compose.yml"

Nous allons maintenant créer le fichier docker-compose.yml, c'est lui qui contiendra la configuration de notre conteneur.

Pour le créer nous exécutons la commande suivante : nano docker-compose.yml

L'éditeur s'ouvre, dedans nous allons copier/coller le code suivant :

Code:
version: '3.3'
services:
    speedtest-tracker:
        container_name: speedtest-tracker
        ports:
            - 3120:80   
        environment:
            - APP_DEBUG=true
            - PUID=1001
            - PGID=100
            - DB_CONNECTION=mysql
            - DB_HOST=db
            - DB_PORT=3306
            - DB_DATABASE=speedtest_tracker
            - DB_USERNAME=speedy
            - DB_PASSWORD=MONPASSWORDSQL
            - TZ=Europe/Paris
        volumes:
            - /etc/localtime:/etc/localtime:ro
            - ./config:/config
        image: ghcr.io/alexjustesen/speedtest-tracker:latest
        restart: unless-stopped
        depends_on:
          db:
            condition: service_healthy
        healthcheck:
          test: ["CMD-SHELL", "curl --fail http://127.0.0.1:80/ || exit 1"]
          start_period: 15s
          interval: 90s
          timeout: 10s
          retries: 3

    db:
        image: linuxserver/mariadb
        container_name: speedtest-tracker_mariadb
        environment:
          - PUID=1001
          - PGID=100
          - MYSQL_ROOT_PASSWORD=MONPASSWORDSQLROOT
          - TZ=Europe/Paris
          - MYSQL_DATABASE=speedtest_tracker
          - MYSQL_USER=speedy
          - MYSQL_PASSWORD=MONPASSWORDSQL
        volumes:
          - ./db:/config
        restart: unless-stopped
        mem_limit: 1024m
        healthcheck:
          test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
          start_period: 15s
          interval: 90s
          timeout: 10s
          retries: 3

Vous devez modifier :
- Remplacer MONPASSWORDSQLROOT par un mot de passe fort de votre choix.
A deux endroits dans le compose :
- Dans la ligne PUID=1000, remplacer 1000 par le PUID de votre utilisateur ( votre note en début de tuto )
- Dans la ligne PGID=1000, remplacer 1000 par le GUID de votre utilisateur ( votre note en début de tuto )
- Remplacer MONPASSWORDSQL par un mot de passe fort de votre choix ( identique aux deux endroits ).

Une fois le fichier correctement rempli, vous pouvez quitter l'éditeur avec Ctrl+X et confirmer les modifications.
[/B]



3/ Création et démarrage du conteneur
Rappel : Nous sommes toujours en SSH, dans notre dossier speedtest-tracker

Pour créer le conteneur et le démarrer exécuter la commande suivante : docker compose up -d

Note : Si vous exécuter une veille version de docker-compose ( version 1 ) , la commande sera : docker-compose up -d

Note 2 : Les commandes docker doivent s’exécuter avec les droits root


Si la commande vous retourne "done" ou "Running", c'est que le conteneur est bien lancé !




4/ Accès a Speedtest Tracker

Depuis votre navigateur, il vous suffit maintenant de taper l'adresse ip de votre NAS suivi du port 3120 pour se connecter a l'interface Web de Speedtest Tracker.
Exemple : Si l'ip de votre NAS est 192.168.1.2 alors l'adresse est http://192.168.1.20:3120


1705949956419.png


1705950012815.png

Pour l'identification utiliser :
Email : admin@example.com
Password : password




2024-01-22 - Modification du compose pour l'utilisation d'un base de données MariaDB
2022-11-09 - Création du tutoriel

Source : upandclear.org - docs.speedtest-tracker.dev
 

Pièces jointes

  • 1668020800864.png
    1668020800864.png
    623.1 KB · Affichages: 275
Dernière édition:
Merci pour ce tuto
A l'installation du stack dans le log speedtest j'ai une erreur:
touch: cannot touch '/config/database.sqlite': Permission denied
pourtant mon user id a les droits root :/

J'ai aussi esssayé avec docker compose, même soucis.
 
Salut,
Pourrai tu nous partager ton compose et aussi le resultat de la commande suivante dans le dossier parent du dossier config ?
Code:
ls -alh
 
Merci pour le retour
Tout est ok à présent, premiere install en docker puis redéployé le container avec portainer puis ok.
A ne rien comprendre mais bon ca marche :)
Message automatiquement fusionné :

Si tu pouvais m'aider avec swag ça m'arrangerait, car la je galère :(
 
  • J'aime
Réactions: Dimebag Darrell
Salut à tous,

j'ai suivi le tuto mais cela ne fonctionne pas.
J'ai ceci:
1680430932392.png
en détail:
1680430994909.png

Quand je clique sur Général j'ai l'erreur suivante:
1680430976240.png

Pouvez-vous m'aider ? Ai-je raté un truc ?

Joël
 
comment je peux faire pour le connecter a gluetun j'ai des problèmes avec les port car 80 et 443 sont réservé a la connection vpn
 
Dernière édition:
Bonjour,
merci pour le tuto, je l ai installé sur mon nas synology comme decrit sur le tuto, mais aussi via portainer.
Ilse se lance puis plante et le problème est le meme auusi bien via SSH ou portainer.
j ai toujous l' erreur ds le journal Capture d’écran 2023-12-05 à 02.23.28.png
Quelqu'un à déja eu ca ?
merci pour votre aide
 
Dernière édition:
Bonjour

J'ai suivie le tuto et aucun problème pour l'installation du docker mais comme d'autres j'ai l'impression que j'ai un problème de permission pour la bdd SQL ce qui je pense fais planter le docker. Faut-il modifier des paramètres pour la connexion ou bien créer sa bdd ?
Je débute un peu avec mon serveur et j'avoue que je suis un peu paumé sur quel BDD il essaie de se connecter.

Merci d'avance pour l'aide
 

Pièces jointes

  • Rapport erreur connexion SQL.jpg
    Rapport erreur connexion SQL.jpg
    64.3 KB · Affichages: 1
Salut,
Il y a quelques temps, j'ai eu pas mal de soucis avec la DB sqlite intégré. Au bout d'un moment, et a force que chaque maj "casse" le truc, je suis reparti sur une nouvelle installation avec un conteneur de base de données externe. Je viens de mettre a jours le tutoriel en conséquence.
 
Hello, alors je viens de faire les test et toujours la même erreur :unsure:
Déjà pour PUID et PGUID faut-il modifier les 2 ?
Voila comment ça se termine 1705947985186.png
Et le container s'arrête.
Bizarrement toutes les 2 min, le container s'arrête avec une erreur dans l’événement system.

En tout merci pour la réactivité :)
 
Déjà pour PUID et PGUID faut-il modifier les 2 ?
Oui, aux deux endroits du compose, je viens d'adapter le tuto.

je viens de vérifier le compose, il fonctionne sur ma machine, et sur un NAS QNAP. Attention cependant, j'avais une petite erreur a la fin du tuto, le port c'est 3120 pour l'acces en HTTP ( suite a mon changement du compose ).
 
Oui, aux deux endroits du compose, je viens d'adapter le tuto.

je viens de vérifier le compose, il fonctionne sur ma machine, et sur un NAS QNAP. Attention cependant, j'avais une petite erreur a la fin du tuto, le port c'est 3120 pour l'acces en HTTP ( suite a mon changement du compose ).
Oui pour le port je m'en suis douté. Je vais creusé aussi alors ^^
Je suis sur un nas Synology donc je vais voir pourquoi j'ai des pb avec la BDD
 
Oui pour le port je m'en suis douté. Je vais creusé aussi alors ^^
Je suis sur un nas Synology donc je vais voir pourquoi j'ai des pb avec la BDD
Vérifie bien avant de recommancer que les dossier config et db soit vide.

Aussi, apres la création, les dossiers sont rempli ou rien n'est ecrit ?
1705950643838.gif
 
Vérifie bien avant de recommancer que les dossier config et db soit vide.

Aussi, apres la création, les dossiers sont rempli ou rien n'est ecrit ?
Oui à chaque fois que j'ai recommencé j'ai directement sup les 2 fichiers et supprimer les container.

Pour le dossier config, j'ai un fichier .env et pour le dossier db un fichier custom.cnf et 2 dossier : databases et log

Le container mariadb a l'air d'être ok, c'est celui despeedtest-tracker qui stop


Je vais regarder aussi car j'avais déjà installer un package mariaDb donc il y a peut être un truc qui foire à cause de ça