Move watchdog alert address into conf/

Both watchdogs hardcoded the notification address. Read it from
conf/watchdog.conf instead, matching the pattern used for the other
credentials, so the repo carries no real contact details.

If the config is absent the watchdogs still run and log; sendAlert notes the
missing address and skips the mail rather than invoking mail(1) with an empty
recipient.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
ergosteur
2026-08-06 15:49:16 +00:00
co-authored by Claude Opus 5
parent 0580a9530a
commit 23196eafed
3 changed files with 41 additions and 2 deletions
+11
View File
@@ -0,0 +1,11 @@
# Alert destination for vm-watchdog.sh and lxc-watchdog.sh.
#
# Copy to conf/watchdog.conf next to the scripts:
# cp conf/watchdog.conf.example conf/watchdog.conf
#
# The scripts look for it relative to their own location, so this works both in a
# checkout and deployed at /opt/ergosteur. Override with WATCHDOG_CONFIG.
#
# If the file is absent the watchdogs still run and log; they just skip the email.
WATCHDOG_EMAIL=alerts@example.com
+15 -1
View File
@@ -13,7 +13,17 @@ declare -A Containers=(
) )
logFile="/var/log/proxmox_lxc_watchdog.log" logFile="/var/log/proxmox_lxc_watchdog.log"
email="your_email@example.com"
# Alert address comes from conf/watchdog.conf (see conf/watchdog.conf.example),
# resolved relative to this script so it works from a checkout or /opt/ergosteur.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
CONFIG=${WATCHDOG_CONFIG:-$SCRIPT_DIR/conf/watchdog.conf}
email=""
if [[ -r "$CONFIG" ]]; then
# shellcheck source=/dev/null
. "$CONFIG"
email="${WATCHDOG_EMAIL:-}"
fi
# Log function # Log function
log () { log () {
@@ -26,6 +36,10 @@ log () {
sendAlert () { sendAlert () {
subject="[Proxmox LXC WatchDog] $1" subject="[Proxmox LXC WatchDog] $1"
body="$2" body="$2"
if [[ -z "$email" ]]; then
log "No WATCHDOG_EMAIL configured in $CONFIG; skipping alert: $subject"
return
fi
echo -e "$body" | mail -s "$subject" "$email" echo -e "$body" | mail -s "$subject" "$email"
} }
+15 -1
View File
@@ -11,7 +11,17 @@ declare -A VMs=(
) )
logFile="/var/log/proxmox_watchdog.log" logFile="/var/log/proxmox_watchdog.log"
email="alerts@example.com"
# Alert address comes from conf/watchdog.conf (see conf/watchdog.conf.example),
# resolved relative to this script so it works from a checkout or /opt/ergosteur.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
CONFIG=${WATCHDOG_CONFIG:-$SCRIPT_DIR/conf/watchdog.conf}
email=""
if [[ -r "$CONFIG" ]]; then
# shellcheck source=/dev/null
. "$CONFIG"
email="${WATCHDOG_EMAIL:-}"
fi
# Log function # Log function
log () { log () {
@@ -24,6 +34,10 @@ log () {
sendAlert () { sendAlert () {
subject="[Proxmox WatchDog] $1" subject="[Proxmox WatchDog] $1"
body="$2" body="$2"
if [[ -z "$email" ]]; then
log "No WATCHDOG_EMAIL configured in $CONFIG; skipping alert: $subject"
return
fi
echo -e "$body" | mail -s "$subject" "$email" echo -e "$body" | mail -s "$subject" "$email"
} }