Ajouter scripts/kuma-docker-auto.sh
This commit is contained in:
50
scripts/kuma-docker-auto.sh
Normal file
50
scripts/kuma-docker-auto.sh
Normal 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."
|
||||
Reference in New Issue
Block a user