Post

🐇Speedtest Tracker

🐇Speedtest Tracker

Analyser les performances de votre fournisseur d’accĂšs Internet avec Speedtest Tracker. Vous pouvez surveiller automatiquement la vitesse de votre connexion et conserver un historique dĂ©taillĂ© de vos tests.

🐇Speedtest Tracker

Liens

Installation via Docker compose

Créer le dossier

1
2
3
4
mkdir -p $HOME/speedtest
# data
mkdir -p $HOME/docker-data/speedtest
cd $HOME/speedtest

Une clĂ© d’application (APP_KEY) est utilisĂ©e pour le chiffrement. Il s’agit d’une chaĂźne codĂ©e en base64 qui est utilisĂ©e par Speedtest Tracker pour chiffrer et dĂ©chiffrer des donnĂ©es, telles que les sessions utilisateur et d’autres informations sensibles, et qui est requise dans le cadre du processus de configuration.

Pour générer cette clé vous pouvez utiliser la commande suivante sous Linux :

1
echo -n 'base64:'; openssl rand -base64 32;

Créer le fichier docker-compose

1
nano docker-compose.yml

Le fichier docker compose avec sqlite

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
services:
    speedtest-tracker:
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped
        container_name: speedtest-tracker
        ports:
            - 8080:80
            - 8443:443
        environment:
            - PUID=1000
            - PGID=1000
            - APP_KEY=base64:pFJfztp..............Ay0=
            - DB_CONNECTION=sqlite
            - APP_TIMEZONE=Europe/Paris
            - APP_URL=https://speedtest.rnmkcy.eu
            - ASSET_URL=https://speedtest.rnmkcy.eu
            - SPEEDTEST_SCHEDULE=0 5,19 * * *
            - SPEEDTEST_SERVERS=32565
        volumes:
            - ../docker-data/speedtest:/config
  • PUID et PGID (obligatoire) : vous devez mettre ici la valeur qui correspond Ă  votre ID utilisateur que vous utiliser sur votre serveur. Pour trouver l’id sous Linux d’un utilisateur il suffit d’utiliser la commande id
  • APP_KEY (obligatoire) : ClĂ© utilisĂ©e pour chiffrer et dĂ©chiffrer les donnĂ©es.
  • APP_URL et ASSET_URL: la premiĂšre sert pour pour les URL utilisĂ©e pour les liens dans les e-mails et les notifications et la deuxiĂšme pour les ressources, nĂ©cessaire lors de l’utilisation d’un proxy inverse comme Traefik
  • SPEEDTEST_SCHEDULE: Utiliser cette variable pour programmer des tests automatique, sinon il faudra dĂ©clencher manuellement un test de dĂ©bit. Inventaire complet de toutes les variables d’environnement permettant de configurer Speedtest Tracker (https://docs.speedtest-tracker.dev/getting-started/environment-variables).
  • SPEEDTEST_SERVERS: Liste sĂ©parĂ©e par des virgules des identifiants de serveurs Ă  utiliser de maniĂšre alĂ©atoire pour le test de vitesse. Le but du jeu est d’utiliser toujours le mĂȘme serveur au plus proche de chez vous. Lorsque vous allez crĂ©er votre premier test, vous aurez une liste avec la localisation des serveurs, sinon vous pouvez utiliser une commande Ă  l’intĂ©rieur du container pour afficher les serveurs disponibles. BiensĂ»r vous pouvez utiliser plusieurs serveurs sur cette ligne ou cas oĂč un serait indisponible.

Lancer la construction

1
docker compose up -d

Vérifier la configuration parÚs construction

1
docker logs speedtest-tracker

Paramétrage

PremiĂšre connexion

Ouvrir le lien http://192.168.0.22:8080

Identifiants : admin@example.com
Password: password (Ă  changer)

Utilisateur

C’est la premiĂšre tĂąche Ă  rĂ©aliser pour sĂ©curiser votre installation. Cliquer sur Users -> New user

⚠N’oublier pas d’affecter le RĂŽle Admin Ă  votre utilisateur puis vous dĂ©connecter/reconnectez avec votre identifiant et modifier l’identifiant Admin.

Debian 13 - Proxy nginx

Créer une configuration nginx sur le serveur debian 13 cwwk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
   listen 80;
   server_name speedtest.rnmkcy.eu;
   return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name speedtest.rnmkcy.eu;

    include /etc/nginx/conf.d/ssl-modern.inc;

        add_header Strict-Transport-Security "max-age=31536000;includeSubdomains";

        location / {
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;

                proxy_pass http://192.168.0.222:8080;
        }
}

Lien https://speedtest.rnmkcy.eu

Lancer son premier test de vitesse

Avant de définir les thresholds, vous devez effectuer un premier test de débit qui va servir de référence.

Cliquer sur le bouton Speedtest -> (sélectionner le serveur le plus proche de chez vous) -> Start

Pour connaitre les rĂ©sultats ou le statut du test, vous pouvez consulter l’onglet Results

Pour une vue plus graphique et complĂšte cliquer sur Dashboard -> Metrics (en haut Ă  droite)

Notification du test

Thresholds

Si l’une des 3 conditions suivantes est atteinte, une alerte est envoyĂ©e.

  • download est infĂ©rieur Ă  900
  • Upload infĂ©rieur Ă  800
  • Ping est supĂ©rieur Ă  10 ms

Notifications

Cliquer sur “Save Changes”
Ensuite cliquer sur “Test Apprise”

Vérifier sur ntfy

API Token

Administration

1
2
3
4
5
6
Test
```shell
curl \
 -H "Authorization: Bearer TOKEN_SPEEDTEST" \
 -H "Accept: application/json"   \
"https://speedtest.rnmkcy.eu/api/v1/results"

Maintenance

Notifications via apprise
Il ne faut pas ajouter des autorisations sur le site apprise.rnmkcy.eu, sinon aucune notification ne sera envoyée

Variables Environnement

  • DĂ©finissez la mise en forme des horodatages dans les graphiques.Formatage: https://www.php.net/manual/en/datetime.format.php
    CHART_DATETIME_FORMAT= j/m G:i (18/10 20:06)
  • DĂ©finissez la mise en forme des horodatages dans les tableaux et les notifications.Formatage: https://www.php.net/manual/en/datetime.format.php
    DATETIME_FORMAT=j M Y, G:i:s (18 oct. 2024, 20:06:01)

La configuration ~/speedtest/docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
services:
    speedtest-tracker:
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped
        container_name: speedtest-tracker
        ports:
            - 8080:80
            - 8443:443
        environment:
            - PUID=1000
            - PGID=1000
            - APP_KEY=base64:pFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAy0=
            - DB_CONNECTION=sqlite
            - APP_TIMEZONE=Europe/Paris
            - DISPLAY_TIMEZONE=Europe/Paris
            - DATETIME_FORMAT='j M Y, G:i:s'
            - CHART_DATETIME_FORMAT='j/m G:i'
            - APP_URL=https://speedtest.rnmkcy.eu
            - ASSET_URL=https://speedtest.rnmkcy.eu
            - SPEEDTEST_SCHEDULE=0 */4 * * *
            - SPEEDTEST_SERVERS=32565
        volumes:
            - ../docker-data/speedtest:/config

Recharger aprĂšs modifications

1
docker compose up -d
Cet article est sous licence CC BY 4.0 par l'auteur.