Speedtest Tracker
- Installer Speedtest Tracker
- Exposer Speedtest Tracker avec Swag
Speedtest Tracker est un conteneur permettant de programmer des speedtest régulier afin d'historiser l'état de la connexion internet de votre serveur.
Installation
- Nous utiliserons l'image docker maintenue par LinuxServer.io
Structure des fichiers
root
└── docker
└── speedtest-tracker
└── data
└── config
Dans un terminal, générez une clé avec la commande suivante :
echo -n 'base64:'; openssl rand -base64 32;
Notez la clé.
Ouvrez Dockge, cliquez sur compose
, appelez la stack speedtest-tracker
puis copiez collez ceci :
services:
speedtest-tracker:
image: lscr.io/linuxserver/speedtest-tracker:latest
restart: unless-stopped
container_name: speedtest-tracker
ports:
- ${PORT}$:80
environment:
- PUID=${PUID}
- PGID=${GUID}
- TZ=Europe/Paris
- APP_KEY=${API_KEY}
- DB_CONNECTION=sqlite
- SPEEDTEST_SCHEDULE=${SCHEDULE}
volumes:
- /docker/speedtest-tracker/data/config:/config
Trouvez votre PUID
et votre GUID
en tapant la commande suivante :
id nomdutilisateur
Dans .env
renseignez la variable API_KEY
avec la clé que vous avez générée et un planning de test au format cron, ainsi que vos PUID
et GUID
, par exemple :
SCHEDULE=15 */6 * * * # toutes les 6h
KEY=base64:zihejehkj8_nzhY/OjeieR= # votre clé
PUID=1000
GUID=1000
PORT=3225 # port d'accès à la webui
Déployez le conteneur et rendez-vous sur http://ipduserveur:3225. Connectez vous avec le compte [email protected]
et le mot de passe password
. N'oubliez pas de changer votre id et votre mot de apsse une fois connecté !
Exposer Speedtest Tracker
Nous partons du principe que vous avez créé dans votre zone DNS un sous domaine du type
speedtest.mondomaine.fr
avec pour CNAME
mondomaine.fr
et à moins que vous utilisiez Cloudflare Zero Trust, que vous avez déjà redirigé le port 443
de votre box vers le 443
de votre serveur dans les règles NAT.Il s'agit maintenant d'exposer Speedtest Tracker sur internet, afin de pouvoir y accéder sans que vous soyez chez vous. Pour cela, nous partons du principe que vous avez configuré un sous domaine speedtest.mondomaine.fr
dans votre zone DNS dont le CNAME
pointe sur mondomaine.fr
.
Ouvrez le fichier speedtest.subdomain.conf :
sudo vi /docker/swag/config/nginx/proxy-confs/speedtest.subdomain.conf
Paramétrez le comme tel :
## Version 2023/12/19
server {
listen 443 ssl;
listen [::]:443 ssl;
# indique que le sous-domaine doit être dirigé
server_name speedtest.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
#if ($lan-ip = yes) { set $geo-whitelist yes; }
#if ($geo-whitelist = no) { return 404; }
# indique que les pays dans la blacklist sont intedits
if ($geo-blacklist = no) { return 404; }
# enable for ldap auth (requires ldap-location.conf in the location block)
#include /config/nginx/ldap-server.conf;
# enable for Authelia (requires authelia-location.conf in the location block)
#include /config/nginx/authelia-server.conf;
# enable for Authentik (requires authentik-location.conf in the location block)
#include /config/nginx/authentik-server.conf;
location / {
# enable the next two lines for http auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
# enable for ldap auth (requires ldap-server.conf in the server block)
#include /config/nginx/ldap-location.conf;
# enable for Authelia (requires authelia-server.conf in the server block)
#include /config/nginx/authelia-location.conf;
# enable for Authentik (requires authentik-server.conf in the server block)
#include /config/nginx/authentik-location.conf;
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app speedtest-tracker; # Nom du conteneur
set $upstream_port 3225; # Port interne conteneur
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
Sauvegardez et quittez. La configuration va se mettre à jour en quelques secondes.
- Par défaut, swag ne connait pas le nom "speedtest-tracker". Pour qu'il puisse y accéder, vous devez rajouter le réseau de swag dans le
compose.yml
de Speedtest Tracker.
Rendez-vous sur la stack de speedtest-tracker, puis cliquez sur éditer
, et ajouter le réseau de Swag dans le fichier de conf sur ce modele (les champs networks
) :
services:
speedtest-tracker:
container_name: #...
# ...
networks: # Relie le conteneur au réseau custom. A faire pour chaque conteneur à exposer de la stack
- swag # Nom du réseau déclaré dans la stack
networks: # Définit le réseau custom
swag: # Nom du réseau déclaré dans la stack
name: swag_default # Nom véritable du réseau externe
external: true # Précise que c'est un réseau à rechercher en externe
- Ici nous partons du principe que le nom du réseau de Swag est
swag_default
.
Déployez à nouveau la stack.
Patientez puis tapez https://speedtest.mondomaine.fr
dans votre navigateur, vous devriez être redirigé vers speedtest-tracker. Vous pouvez vérifier le statut du service via le dashboard (depuis votre réseau local, http://ipdevotreserveur:81).
speedtest.subodmain.conf
et en retirant les #
devant include /config/nginx/authentik-server.conf;
et include /config/nginx/authentik-location.conf;
. N'oubliez pas de créer une application et un fournisseur dans Authentik.