Qu’est-ce qu’Uptime Kuma ?

Uptime Kuma est un outil de supervision auto-hébergé. Il vérifie régulièrement les sites web, les ports TCP, les enregistrements DNS, les conteneurs Docker et bien plus encore, envoie une notification lorsqu’un service est indisponible et peut publier des pages d’état. Le projet fournit une image officielle, louislam/uptime-kuma, qui écoute sur le port 3001 et stocke tout dans un dossier /app/data.

Description de l’outil

Cet outil génère un fichier compose.yaml pour Uptime Kuma. Il part du fichier du dépôt Uptime Kuma et ajoute les paramètres dont les utilisateurs ont généralement besoin : la version et la variante de l’image, le port et l’adresse d’écoute de l’hôte, l’emplacement de stockage des données, l’accès au socket Docker pour les moniteurs d’hôtes Docker, ainsi que la base de données. Avec une base de données MariaDB dans son propre conteneur, l’outil ajoute un second service avec une vérification de santé, afin qu’Uptime Kuma ne démarre qu’une fois la base de données prête. Les paramètres pour lesquels le formulaire ne propose aucun champ peuvent être ajoutés sous forme de variables d’environnement. Tout est créé dans votre navigateur.

Fonctionnalités

  • Les tags d’image 2, 1 et beta, avec les variantes standard, slim, rootless et slim rootless de la version 2
  • Le port de l’hôte et une adresse d’écoute telle que 127.0.0.1 pour une utilisation derrière un proxy inverse
  • Un dossier de données sur l’hôte ou un volume Docker nommé, déclaré automatiquement pour vous
  • L’accès facultatif à /var/run/docker.sock pour les moniteurs d’hôtes Docker, avec un avertissement sur les droits ainsi accordés
  • SQLite, la base MariaDB intégrée, un conteneur MariaDB ajouté au fichier ou un serveur MariaDB externe
  • Un mot de passe de base de données généré automatiquement, avec les signes $ échappés afin que Compose les conserve
  • Des options pour l’intégration dans une iframe, la vérification de l’origine WebSocket et un token Cloudflare Tunnel
  • Toute autre variable d’environnement, des commentaires expliquant le fichier et un téléchargement sous le nom compose.yaml

Exemples

Les paramètres par défaut produisent le même fichier que celui du dépôt Uptime Kuma :

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

Le choix d’un conteneur MariaDB comme base de données ajoute un service mariadb et connecte Uptime Kuma à celui-ci avec UPTIME_KUMA_DB_TYPE, UPTIME_KUMA_DB_HOSTNAME et les autres variables UPTIME_KUMA_DB_*.

Conseils

  • Enregistrez le résultat sous le nom compose.yaml dans un dossier vide et démarrez-le avec docker compose up -d. Ouvrez ensuite http://localhost:3001
  • Les systèmes de fichiers tels que NFS ne sont pas pris en charge pour le dossier de données. Utilisez un dossier local ou un volume Docker
  • Les images slim n’incluent pas Chromium, dont le moniteur de navigateur réel a besoin, et elles n’incluent pas non plus la base MariaDB intégrée
  • Les images rootless s’exécutent avec l’utilisateur node et l’UID 1000 ; un dossier de données sur l’hôte doit donc être accessible en écriture pour cet utilisateur
  • Uptime Kuma utilise WebSockets. Lorsque vous le placez derrière un proxy inverse, celui-ci doit transmettre les en-têtes Upgrade et Connection
  • Le socket Docker donne à Uptime Kuma un contrôle total sur Docker sur l’hôte. Ne montez ce socket que si vous avez besoin de moniteurs d’hôtes Docker et n’exposez pas Uptime Kuma sur Internet
  • La version 1 prend uniquement en charge SQLite ; les options de base de données sont donc masquées pour cette version
  • Les champs de mot de passe sont enregistrés en clair dans le fichier. Gardez le fichier privé ou déplacez le mot de passe dans un fichier .env et référencez-le avec ${DB_PASSWORD}