Introduction
Uptime Kuma est une interface web auto hébergée qui permet de surveiller n’importe quel type de serveurs (web, dns, sgdb…etc) et d’alerter en cas de pannes ou de disfonctionnement. Nous allons installer ‘Uptime Kuma’ avec docker compose et portainer dans cette article.
Pour cette installation j’utilise l’image officielle qui est présente ici : https://github.com/louislam/uptime-kuma.
Remarque : J’ai créé au préalable un utilisateur omdocker (voir l’article création d ‘un utilisateur Docker pour le détail). J’ai créé aussi un répertoire qui contiendra tous mes installations docker. dans ce blog, j’utiliserais pour exemple le chemin /volume/docker. |
Nous allons créer aussi le répertoire ‘uptime-kuma’ en ligne de commande sur le NAS (connexion en SSH) dans notre répertoire docker : /volume/docker. Cette étape est facultative, le containeur créera le répertoire automatiquement lors du déploiement si celui ci n’existe pas.
$ cd /volume/docker
$ mkdir uptime-kuma
Le fichier de configuration
Si vous souhaitez sécuriser le lancement de ‘uptime-kuma‘, je vous engage à parcourir l’article securiser docker.
Il est importent de bien respecter l’indentation des fichiers de configurations : pas de tabulation. Attention aussi à la version du fichier, il y a des légères évolutions de syntaxe d’une version à l’autre.
Le fichier yml en détails. Il faut remplacer pour votre configuration :
- port 8203 : numéro de port par défaut pour accéder à l’interface avec votre navigateur,
- TZ : Votre zone de temps,
- UID et PGID : celui de votre utilisateur Docker (omdocker pour ce blog),
- networks : Il faudra relier votre container au réseau de ‘swag’ pour un accès extérieur.
version: "3.9"
services:
kuma:
container_name: uptime-kuma
image: louislam/uptime-kuma:latest
restart: unless-stopped
volumes:
- /volume/docker/uptime-kuma:/app/data
environment:
- PUID=1003
- PGID=100
- TZ=Europe/Paris
ports:
- 192.168.1.2:8203:3001
networks:
default:
external:
name: swag_default
Vous copiez le contenu de ce fichier dans votre interface de gestion Portainer en allant dans ‘Stacks‘ et ‘Add stack‘.


Donnez un nom à votre pile, par exemple ‘uptime-kuma‘, puis déployer cotre containeur en cliquant en bas sur « Deploy the stack‘.
Après une phase de téléchargement de l’image, puis d’installation de l’application, vous devriez arriver sur cet écran si tout s’est bien passé :

Nous pouvons maintenant nous connectez à ‘uptime-kuma‘ localement avec l’URL http://IP_NAS:8203 (l’adresse et le port est a adapté suivant votre fichier de configuration), sinon via votre domaine dans le cas d’un accès extérieur (voir configuration Swag plus bas) :

Création d’uns sonde
Uptime Kuma peut surveiller tous types de services utilisant un port d’écoute. Il possède aussi des services prédéfinis comme des serveurs de jeu Steam, des serveurs Radius et surveiller aussi des containeurs. La création d’un sonde est assez intuitif, il faut renseigner le type de surveillance, la fréquence de surveillance, la notification s’ils y en as de définis…. etc

Les protocoles d’alertes pris en charges sont aussi très nombreux : email, serveur Gotify, serveur Discord…etc

Configuration de Swag
La configuration d’un containeur avec ‘swag‘ est la plupart du temps très simple. ‘swag‘ propose par défaut des fichiers de configurations prédéfinis pour de nombreux services.
Ces fichiers se trouvent dans le répertoire d’installation de swag : /volume/docker/swag/nginx/proxy-confs/

Nous allons simplement recopier ce fichier et le renommer ‘uptime-kuma.subdomain.conf’.
$ cd /volume/docker/swag/nginx/proxy-confs/
$ cp uptime-kuma.subdomain.conf.sample uptime-kuma.subdomain.conf
Nous relançons le containeur swag soit via ‘Portainer‘, soit en ligne de commande ‘sudo docker restart swag‘ pour qu’il prenne en charge la redirection du containeur ‘uptime-kuma‘.