Ajouter scripts/kuma-docker-auto.sh

This commit is contained in:
2025-09-04 14:08:38 +00:00
parent ed4dc6e63f
commit 09a3651a5e

View File

@@ -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."