diff --git a/content/3.serveex/1.introduction.md b/content/3.serveex/1.introduction.md index 62382a8..300ab69 100644 --- a/content/3.serveex/1.introduction.md +++ b/content/3.serveex/1.introduction.md @@ -116,6 +116,13 @@ Monitoring #description [Installer et déployer Dozzle](/serveex/monitoring/dozzle) :: + + ::card{icon=noto:rabbit style="color: #1AD6FF;"} + #title + __Gestion de la connexion__ + #description + [Installer et déployer Speedtest Tracker](/serveex/monitoring/speedtest-tracker) + :: :: ::card-grid diff --git a/content/3.serveex/2.coeur/3.swag.md b/content/3.serveex/2.coeur/3.swag.md index 99b7a02..c1a98fd 100644 --- a/content/3.serveex/2.coeur/3.swag.md +++ b/content/3.serveex/2.coeur/3.swag.md @@ -268,7 +268,7 @@ Dans les fichiers de conf des domaines (section suivante), vous pourrez activer --- ::alert{type="info"} 📋 __Prérequis :__

-Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `dockge.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `dockge.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). :: Il s'agit maintenant d'exposer Dockge sur internet, afin de pouvoir y accéder et gérer vos conteneurs sans que vous soyez chez vous. Pour cela, nous partons du principe que vous avez configuré un sous domaine `dockge.mondomaine.fr` dans votre zone DNS dont le `CNAME` pointe sur `mondomaine.fr`. @@ -285,8 +285,8 @@ Paramétrez le comme tel : ## Version 2023/12/19 server { - listen 443 ssl http2; - listen [::]:443 ssl http2; + listen 443 ssl; + listen [::]:443 ssl; # indique que le sous-domaine doit être dirigé server_name dockge.*; diff --git a/content/3.serveex/4.monitoring/3.speedtest-tracker.md b/content/3.serveex/4.monitoring/3.speedtest-tracker.md new file mode 100644 index 0000000..7ce2e0f --- /dev/null +++ b/content/3.serveex/4.monitoring/3.speedtest-tracker.md @@ -0,0 +1,195 @@ +--- +navigation: true +title: Speedtest Tracker +main: + fluid: false +--- +:ellipsis{left=0px width=40rem top=10rem blur=140px} +# Speedtest Tracker + +::alert{type="info"} +🎯 __Objectifs :__ +- Installer Speedtest Tracker +- Exposer Speedtest Tracker avec Swag +:: + +[Speedtest Tracker](https://docs.speedtest-tracker.dev/) est un conteneur permettant de programmer des speedtest régulier afin d'historiser l'état de la connexion internet de votre serveur. + +![speedtest-tracker](/img/serveex/speedtest-tracker.avif) + +## Installation +--- +::alert{type="info"} +:::list{type="info"} +- Nous utiliserons l'image docker maintenue par [LinuxServer.io](https://docs.linuxserver.io/images/docker-speedtest-tracker/) +::: +:: + +Structure des fichiers + +```console +root +└── docker + └── speedtest-tracker + └── data + └── config +``` + +Dans un terminal, générez une clé avec la commande suivante : + +```shell +echo -n 'base64:'; openssl rand -base64 32; +``` + +Notez la clé. + +Ouvrez Dockge, cliquez sur `compose`, appelez la stack `speedtest-tracker` puis copiez collez ceci : + +```yaml +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 : + +```shell +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 : + +```properties +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 +``` + +::alert{type="success"} +✨ __Astuce :__ vous pouvez configurer d'autres variables d'environnements en consultant la [documentation officielle](https://docs.speedtest-tracker.dev/getting-started/environment-variables). +:: + +Déployez le conteneur et rendez-vous sur http://ipduserveur:3225. Connectez vous avec le compte `admin@exemple.com` et le mot de passe `password`. N'oubliez pas de changer votre id et votre mot de apsse une fois connecté ! + + +## Exposer Speedtest Tracker +--- +::alert{type="info"} +📋 __Prérequis :__

+Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `speedtest.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/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 : + +```shell +sudo vi /docker/swag/config/nginx/proxy-confs/speedtest.subdomain.conf +``` + +Paramétrez le comme tel : + +```nginx +## 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. +::alert{type="info"} +:::list{type="info"} +- 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`) : + + +```yaml +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 +``` + +::alert{type="info"} +:::list{type="info"} +- 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). + diff --git a/public/img/serveex/speedtest-tracker.avif b/public/img/serveex/speedtest-tracker.avif new file mode 100644 index 0000000..94a9c09 Binary files /dev/null and b/public/img/serveex/speedtest-tracker.avif differ