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