QNAP [Tuto] Installation de Speedtest Tracker en Docker sur un NAS QNAP ( Container Station )

EVO

Administrateur
Membre du personnel
25 Novembre 2019
10 926
2 464
288
/var/run/docker.sock
Installation de Speedtest Tracker en Docker sur un NAS QNAP ( Container Station )

Speedtest Tracker, c'est quoi ?
Speedtest-Tracker est une application auto-hébergée de suivi des performances Internet qui effectue des vérifications de speedtest par rapport au service Speedtest d'Ookla.
1696096132133.jpeg
1696096140089.jpeg

Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert, 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, ...


Pré-requis :
- Un NAS QNAP compatible Container Station
- Accès en SSH à son NAS QNAP

Sommaire :
1/ Récupération de l'ID de votre utilisateur
2/ Création du conteneur
3/ Accès a Speedtest Tracker




1/ Récupération de l'ID de votre utilisateur

Utiliser ce tuto pour vous connecter en SSH a votre NAS QNAP : [Tuto] Se connecter à son NAS QNAP par SSH

Récupérer l'ID de votre utilisateur : [Mémo] Connaitre le PUID / PGID d'un utilisateur sur un NAS QNAP




2/ Création du conteneur


Rendez vous dans Container Station puis dans Applications > Créer :
1696063152741.png
Dans la fenêtre "Créer une application" qui s'ouvre compléter le nom et le code YAML :

1 - Nom de l'application : Vous pouvez choisir mais attention pas d'espace / majuscule / caractères spéciaux, dans mon cas j'ai choisi simplement "speedtest-tracker"
2 - Code YAML, ici il s'agit de la configuration du conteneur. Voici le code a rentrer :


Code:
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
            - APP_KEY=base64:JFPMecz4XTujTiC+kNiNAVagZ5eWgRboq0r/d2JS/Us=
            - APP_URL=http://localhost
            - DISPLAY_TIMEZONE=Europe/Paris
            - PRUNE_RESULTS_OLDER_THAN=0
#            - SPEEDTEST_SCHEDULE=
        volumes:
            - /share/Container/speedtest-tracker/config:/config
        image: lscr.io/linuxserver/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:
          - /share/Container/speedtest-tracker/db:/config
        restart: unless-stopped
        mem_limit: 1024m
        healthcheck:
          test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
          start_period: 15s
          interval: 90s
          timeout: 10s
          retries: 3

Code:
services:
    speedtest-tracker:
        container_name: speedtest-tracker
        ports:
            - 3003:80
        environment:
            - PUID=1000
            - PGID=100
            - DB_CONNECTION=mysql
            - DB_HOST=db
            - DB_PORT=3306
            - DB_DATABASE=speedtest_tracker
            - DB_USERNAME=speedy
            - DB_PASSWORD=ABCDEF
            - TZ=Europe/Paris
        volumes:
            - /etc/localtime:/etc/localtime:ro
            - /share/Container/speedtest-tracker/config:/config
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped
        depends_on:
            - db
    db:
        image: lscr.io/linuxserver/mariadb
        container_name: speedtest-tracker_mariadb
        environment:
          - PUID=1000
          - PGID=100
          - MYSQL_ROOT_PASSWORD=123456789
          - TZ=Europe/Paris
          - MYSQL_DATABASE=speedtest_tracker
          - MYSQL_USER=speedy
          - MYSQL_PASSWORD=ABCDEF
        volumes:
          - /share/Container/speedtest-tracker/db:/config
        restart: unless-stopped

Attention, dans ce code, il y a 4 champs à personnaliser :
- PUID=1000, ici remplacer 1000 pour le PUID trouvé au point 1 ( attention, il est a remplacer a deux endroit dans le code YAML )

- MYSQL_ROOT_PASSWORD=123456789, vous devez ici personnaliser 123456789 par un mot de passe fort aléatoire, exemple : VebXFmR9Sg9zU4ReN3hELo2iiPZGvWc2

- APP_KEY=base64:JFPMecz4XTujTiC+kNiNAVagZ5eWgRboq0r/d2JS/Us=, je vous encourage a personnaliser la clé de chiffrement, vous pouvez aller sur https://speedtest-tracker.dev/ pour générer une clé aléatoire.

- DB_PASSWORD=ABCDEF, vous devez ici personnaliser ABCDEF par un mot de passe, exemple : uWY2FJ6ahUBHHgLa, attention, il sera aussi le mot de passe pour la ligne MYSQL_PASSWORD=ABCDEF, vous devez donc remplacer ABCDEF sur les deux lignes par le mot de passe choisi.

Exemple :
1696063232426.png

Note : Le conteneur utilise le port 3003, si ce port n'est pas disponible, vous pouvez le modifier par autre chose dans le code YAML.
Dans ce cas, modifier la 1ere valeur de la ligne 12 : - 3003:80, par exemple, pour utiliser le port 3004, la ligne doit être - 3004:80.


Validez la création du conteneur avec le bouton "Créer".

Le conteneur est alors en cours de création :
1696063301527.png

Une fois créé, il apparait dans le liste des applications, avec un point vert :

1696063355487.png



3/ Accès à Speedtest-Tracker


Maintenant que notre conteneur est créé. Il nous suffit de taper son adresse dans notre navigateur pour y accéder.

L'adresse sera sous la forme http://<IP_NAS>:3003, exemple si l'ip de votre NAS est 192.168.1.20, alors l'adresse sera http://192.168.1.20:3003.

1696064095533.png

Note : Si dans le point 1 vous avez personnalisé le port 3003 par autre chose, il faudra alors aussi modifier le port dans l'adresse d'accès.


Renseigner maintenant le mail admin@example.com et le mot de passe password pour vous connecter. Vous pouvez les modifier par la suite dans l'espace d'administration.

2025-09-05 - Amélioration de la mise en page / Simplification / Mise à jour de l'image speedtest-test ( changement vers linuxserver )
2023-09-30 - Création
 

Pièces jointes

  • 1696062785130.png
    1696062785130.png
    45.3 KB · Affichages: 81
Dernière édition:
Salut et merci pour ce tuto.
Malheureusement, ça ne fonctionne pas pour un TS-231P2
Erreur à l'install "no matching manifest for linux/arm/..."
J'ai essayé aussi ce tuto sans succès.
 
Merci pour ta réponse rapide.
J'ai réussi à puller une image depuis l'url du script yaml => ghcr.io/alexjustesen/speedtest-tracker:latest
Elle est dispo dans les containers ce qui me fait penser qu'il a réussi à trouver quelque chose de compatible mais je me trompe peut être.
QNAP.png
 
Merci pour ta réponse rapide.
J'ai réussi à puller une image depuis l'url du script yaml => ghcr.io/alexjustesen/speedtest-tracker:latest
Elle est dispo dans les containers ce qui me fait penser qu'il a réussi à trouver quelque chose de compatible mais je me trompe peut être.
Voir la pièce jointe 14521
Il faut que je mette a jour ce tuto, c'est l'image linuxserver qu'il faut utiliser .

Dans toutvles cas je te confirme que c'est incompatible avec le CPU de ton nas https://docs.linuxserver.io/images/docker-speedtest-tracker/#supported-architectures même si la récupération d'image est possible, elle ne seront pas exploitables
 
Ok, merci bien pour ta réponse.
Je suppose qu'il n'y aura pas beaucoup d'images compatibles quelque soit l'application conteneurisée pour mon architecture ?
 
Dernière édition:
UPDATE :) Amélioration de la mise en page / Simplification / Mise à jour de l'image speedtest-test ( changement vers linuxserver )