5.8 KiB
Executable File
Uptime-Kuma
!!!abstract "Objectif" - 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
!!!tip "Astuce"
Ajoutez le label de watchtower dans chaque conteneur afin d'automatiser les mises à jour
yaml services: uptime-kuma: #... labels: - com.centurylinklabs.watchtower.enable=true
Vous n'avez plus qu'à accéder à l'outil via http://ipdevotreserveur:3200
.
Exposer avec Swag
!!!info
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
.
!!!tip "Astuce pour les allergiques au terminal" Vous pouvez utiliser File Browser pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
$ 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 :
networks: # (3)! swag: # (6)! name: swag_default # (4)! external: true # (5)!
</div>
1. :point_right: Relie le conteneur au réseau custom. A faire pour chaque conteneur à exposer de la stack
2. :point_right: Nom du réseau déclaré dans la stack
3. :point_right: Défini le réseau custom
4. :point_right: Nom véritable du réseau externe
5. :point_right: Précise que c'est un réseau à rechercher en externe
6. :point_right: Nom du réseau déclaré dans la stack
!!!info
Ici nous partons du principe que le nom du réseau de Swag est `swag_default`.
!!!tip "Protéger avec Authentik"
Vous pouvez protéger cette app avec Authentik en ouvrant `stats.subodmain.conf` et en retirant les `#` devant `::::nginx include /config/nginx/authentik-server.conf;` et `::::nginx include /config/nginx/authentik-location.conf;`
N'oubliez pas de [créer une application et un fournisseur dans Authentik](/serveex/authentik#proteger-une-app-par-reverse-proxy).
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 :
```properties
^/$
^/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`.
!!!tip "Astuce"
Si vous utilisez Authentik et que vous ne craignez pas d'exposer votre panneau admin à votre réseau local, vous pouvez désactiver l'authentification d'Uptime-Kuma via les paramètres, afin de ne garder que celle d'Authentik.