Uptime-Kuma
- Installer et déployer Uptime-Kuma
- Exposer Uptime Kuma
- (Optionnel) Protéger Uptime-Kuma avec Authentik
Uptime-Kuma est un conteneur dédié au monitoring de services. Le principe est d'envoyer des requêtes régulières à vos services afin de déterminer s'ils sont en lignes ou non, et de vous alerter le cas échéant. Uptime-Kuma est développé par le meme développeur que Dockge.
Installation
Structure des dossiers
root
└── docker
└── uptime-kuma
├── date
└── compose.yaml
Ouvrez Dockge, cliquez sur compose
, appelez la stack uptime-kuma
puis copiez collez ceci :
version: "3.3"
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- /docker/uptime-kuma/uptime-kuma-data:/app/data
ports:
- 3200:3001 # <Host Port>:<Container Port>
restart: always
services:
uptime-kuma:
#...
labels:
- com.centurylinklabs.watchtower.enable=true
Vous n'avez plus qu'à accéder à l'outil via http://ipdevotreserveur:3200
.
- En cas d'échec : vérifiez les règles de votre pare-feu.
Exposer avec Swag
Nous partons du principe que vous avez le sous-domaine
stats.mondomaine.fr
avec un CNAME
qui pointe vers mondomaine.fr
dans votre zone DNS. Et que bien sûr, à moins que vous utilisiez Cloudflare Zero Trust, le port 443
de votre box pointe bien sur le port 443
de votre serveur via les règles NAT.Dans les dossiers de Swag, créez le fichier stats.subdomain.conf
.
sudo vi /docker/swag/config/nginx/proxy-confs/stats.subdomain.conf
Entrez en modification avec la touche i
et collez la configuration ci-dessous :
## Version 2023/12/19
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name stats.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
#if ($lan-ip = yes) { set $geo-whitelist yes; }
#if ($geo-whitelist = no) { return 404; }
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 uptime-kuma;
set $upstream_port 3001;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
Appuyez sur Echap
puis sauvegardez et quittez en tapant :x
puis en appuyant sur Entrée
.
Dans Dockge, modifiez la stack Uptime-Kuma
, et ajoutez le réseau de swag. Pour rappel :
services:
nomduservice:
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éfini 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
.
Vous pouvez protéger cette app avec Authentik en ouvrant
stats.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. Si vous souhaitez que la page publique de stats soit joignable par tout le monde sans authentification:- Editez le fournisseur d'Uptime-Kuma
- Dans paramètres avancés du protocole > chemins authentifiés, saisissez :
^/$ ^/status ^/assets/ ^/assets ^/icon.svg ^/api/.* ^/upload/.* ^/metrics
Déployez à nouveau la stack.
Uptime-Kuma sera ainsi joignable directement depuis internet en tapant https://stats.mondomaine.fr
.