notifications

This commit is contained in:
2026-03-03 22:30:06 +01:00
parent 4f679cadd4
commit b6e31e4976
3 changed files with 29 additions and 4 deletions

View File

@@ -9,7 +9,7 @@
# Lizenz: MIT
###############################################################################
VERSION="0.4.0"
VERSION="0.3.1"
set -euo pipefail
@@ -228,6 +228,12 @@ write_pid() {
cleanup() {
log "INFO" "AdGuard Shield wird beendet..."
# Service-Stop-Benachrichtigung senden
if [[ "${NOTIFY_ENABLED:-false}" == "true" ]]; then
send_notification "service_stop" "" "" ""
# Kurz warten damit die Benachrichtigung gesendet wird (curl läuft im Hintergrund)
sleep 1
fi
stop_blocklist_worker
rm -f "$PID_FILE"
exit 0
@@ -454,6 +460,10 @@ send_notification() {
simple_dur=$(format_duration "${BAN_DURATION}")
message="🚫 AdGuard Shield: Client **$client_ip** gesperrt (${count}x $domain in ${RATE_LIMIT_WINDOW}s). Sperre für ${simple_dur}."
fi
elif [[ "$action" == "service_start" ]]; then
message="🟢 AdGuard Shield v${VERSION} wurde gestartet."
elif [[ "$action" == "service_stop" ]]; then
message="🔴 AdGuard Shield v${VERSION} wurde gestoppt."
else
message="✅ AdGuard Shield: Client **$client_ip** wurde entsperrt."
fi
@@ -480,7 +490,7 @@ send_notification() {
;;
generic)
curl -s -H "Content-Type: application/json" \
-d "{\"message\": \"$message\", \"action\": \"$action\", \"client\": \"$client_ip\", \"domain\": \"$domain\"}" \
-d "{\"message\": \"$message\", \"action\": \"$action\", \"client\": \"${client_ip:-}\", \"domain\": \"${domain:-}\"}" \
"$NOTIFY_WEBHOOK_URL" &>/dev/null &
;;
esac
@@ -503,6 +513,10 @@ send_ntfy_notification() {
if [[ "$action" == "ban" ]]; then
tags="rotating_light,ban"
elif [[ "$action" == "service_start" ]]; then
tags="green_circle,start"
elif [[ "$action" == "service_stop" ]]; then
tags="red_circle,stop"
else
tags="white_check_mark,unban"
fi
@@ -843,6 +857,11 @@ main_loop() {
fi
log "INFO" "═══════════════════════════════════════════════════════════"
# Service-Start-Benachrichtigung senden
if [[ "${NOTIFY_ENABLED:-false}" == "true" ]]; then
send_notification "service_start" "" "" ""
fi
# Blocklist-Worker als Hintergrundprozess starten
start_blocklist_worker

View File

@@ -1,6 +1,6 @@
# Webhook-Benachrichtigungen
Das Tool kann bei Sperren und Entsperrungen Benachrichtigungen an verschiedene Dienste senden.
Das Tool kann beim Starten und Stoppen des Services sowie bei Sperren und Entsperrungen Benachrichtigungen an verschiedene Dienste senden.
## Aktivierung
@@ -103,6 +103,12 @@ Sendet einen POST mit JSON-Body:
## Beispiel-Nachrichten
**Service gestartet:**
> 🟢 AdGuard Shield v0.4.0 wurde gestartet.
**Service gestoppt:**
> 🔴 AdGuard Shield v0.4.0 wurde gestoppt.
**Sperre:**
> 🚫 AdGuard Shield: Client **192.168.1.50** gesperrt (45x microsoft.com in 60s). Sperre für 3600s.

View File

@@ -6,7 +6,7 @@
# Lizenz: MIT
###############################################################################
VERSION="0.3.0"
VERSION="0.3.1"
set -euo pipefail