From 09a3651a5e374f5ce8397f386e848ba15230ae56 Mon Sep 17 00:00:00 2001 From: morgane Date: Thu, 4 Sep 2025 14:08:38 +0000 Subject: [PATCH] Ajouter scripts/kuma-docker-auto.sh --- scripts/kuma-docker-auto.sh | 50 +++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 scripts/kuma-docker-auto.sh diff --git a/scripts/kuma-docker-auto.sh b/scripts/kuma-docker-auto.sh new file mode 100644 index 0000000..c5a07a5 --- /dev/null +++ b/scripts/kuma-docker-auto.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# ⚙️ Configuration +KUMA_URL="http://127.0.0.1:3001" # URL de ton Uptime Kuma +API_KEY="uk1_b-HORr0QCowCugxkPfnKvV_pdH9aXndCkNlKdSb2" # Ta clé API +CHECK_INTERVAL=60 # Intervalle de check en secondes + +# Liste des conteneurs avec port exposé (nom:port) +containers=$(docker ps --format '{{.Names}} {{.Ports}}' | grep -oP '^\S+.*->(\d+)/tcp' | awk '{print $1 ":" $NF}' | sed 's#/tcp##' | sed 's/->/:/') + +# Fonction pour créer ou mettre à jour un monitor +create_monitor() { + local name=$1 + local url=$2 + + # Vérifier si le monitor existe déjà + monitor_id=$(curl -s -H "Authorization: Bearer $API_KEY" "$KUMA_URL/api/monitors" | jq -r ".[] | select(.name==\"$name\") | .id") + + if [ -z "$monitor_id" ]; then + echo "Création du monitor: $name -> $url" + curl -s -X POST "$KUMA_URL/api/monitor" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $API_KEY" \ + -d "{ + \"type\": \"http\", + \"name\": \"$name\", + \"url\": \"$url\", + \"interval\": $CHECK_INTERVAL + }" + else + echo "Monitor existant: $name, mise à jour URL -> $url" + curl -s -X PUT "$KUMA_URL/api/monitor/$monitor_id" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $API_KEY" \ + -d "{ + \"url\": \"$url\", + \"interval\": $CHECK_INTERVAL + }" + fi +} + +# Parcours des conteneurs et création/mise à jour des monitors +for c in $containers; do + name=$(echo $c | cut -d: -f1) + port=$(echo $c | cut -d: -f2) + url="http://127.0.0.1:$port" + create_monitor "$name" "$url" +done + +echo "Synchronisation Docker → Uptime Kuma terminée."