6.8 KiB
title, description
| title | description |
|---|---|
| Uptime-Kuma | Installer Uptime-Kuma pour surveiller la disponibilité de vos services auto-hébergés, configurer des alertes et protéger le tableau de bord avec Authentik. |
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
Uptime-Kuma
::note 🎯 Objectifs :
- 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 :
---
services:
uptime-kuma:
image: louislam/uptime-kuma:2-slim
container_name: uptime-kuma
volumes:
- /docker/uptime-kuma/uptime-kuma-data:/app/data
ports:
- 3200:3001 # <Host Port>:<Container Port>
restart: always
::tip{icon=""} ✨ 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.
::caution
En cas d'échec : vérifiez les règles de votre pare-feu. ::
Exposer avec Swag
::note
📋 Au préalable :
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.
::
::warning
Uptime-Kuma n'utilise pas d'authentification multifacteur. Exposer Uptime-Kuma sur internet pourrait compromettre les machines auxquelles il est relié. Ne le faite que si vous utilisez un systeme d'authentification multifacteur comme Authentik. Sinon, n'exposez pas avec SWAG et utilisez plutôt un VPN comme Wireguard. ::
Dans les dossiers de Swag, créez le fichier stats.subdomain.conf.
::tip{icon=""} ✨ 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 nano /docker/swag/config/nginx/proxy-confs/stats.subdomain.conf
Collez la configuration ci-dessous :
## Version 2023/12/19
server {
listen 443 ssl;
listen [::]:443 ssl;
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;
}
}
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
Rendez-vous dans dockge, et éditez le compose de SWAG en ajoutant le réseau d'Uptime-Kuma :
services:
swag:
container_name: # ...
# ...
networks: # Relie le conteneur au réseau custom
# ...
- uptime-kuma # Nom du réseau déclaré dans la stack
networks: # Définit le réseau custom
# ...
uptime-kuma: # Nom du réseau déclaré dans la stack
name: uptime-kuma_default # Nom véritable du réseau externe
external: true # Précise que c'est un réseau à rechercher en externe
Relancez la stack et patientez le temps que SWAG soit complètement opérationnel.
::note
Ici nous partons du principe que le nom du réseau de Uptime-Kuma est uptime-kuma_default. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant http://ipduserveur:81.
::
Et voilà, vous avez exposé Uptime-Kuma, vous pouvez y accéder en tapant https://stats.mondomaine.fr
::tip{icon=""}
✨ Astuce :
Vous pouvez protéger cette app avec Authentik en ouvrant stats.subodmain.conf et en retirant les # devant include /config/nginx/authentik-server.conf;{lang=nginx} et include /config/nginx/authentik-location.conf;{lang=nginx}. 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.
::tip{icon=""} ✨ 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. ::
