Files
email-amazon/DMS/docker-data/dms/config/user-patches.sh
2026-08-14 23:07:21 +02:00

62 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# user-patches.sh laeuft bei jedem Start von DMS automatisch,
# nach dem Setup und bevor die Daemons gestartet werden.
SRC_BASE="/tmp/docker-mailserver/rspamd"
LOCAL_D="/etc/rspamd/local.d"
# ---------------------------------------------------------------------------
# 1) local.d configs kopieren
# DMS kopiert nur rspamd/override.d automatisch, local.d nicht.
# ---------------------------------------------------------------------------
echo "Patching: Kopiere custom rspamd local.d configs..."
if [ -d "${SRC_BASE}/local.d" ]; then
for f in "${SRC_BASE}/local.d"/*; do
[ -f "$f" ] || continue
base=$(basename "$f")
cp "$f" "${LOCAL_D}/${base}"
chown root:root "${LOCAL_D}/${base}"
chmod 644 "${LOCAL_D}/${base}"
echo " Kopiert: ${base} -> ${LOCAL_D}/"
done
fi
# ---------------------------------------------------------------------------
# 2) append.d: an bestehende local.d-Dateien ANHAENGEN statt sie zu ersetzen
#
# Zwingend fuer settings.conf: DMS legt dort selbst die Regel fuer
# authentifizierte User ab (DMS::SED_TAG::1). Ein cp darueber wuerde sie
# loeschen und RSPAMD_CHECK_AUTHENTICATED=0 wirkungslos machen.
#
# Der Marker DMS-CUSTOM-APPEND macht das Anhaengen idempotent - /etc/rspamd
# liegt im Container-Dateisystem und ueberlebt einen `docker restart`.
# ---------------------------------------------------------------------------
echo "Patching: Haenge custom rspamd Snippets an local.d configs an..."
if [ -d "${SRC_BASE}/append.d" ]; then
for f in "${SRC_BASE}/append.d"/*; do
[ -f "$f" ] || continue
base=$(basename "$f")
target="${LOCAL_D}/${base}"
if grep -q 'DMS-CUSTOM-APPEND' "$target" 2>/dev/null; then
echo " Bereits vorhanden, uebersprungen: ${base}"
continue
fi
printf '\n' >>"$target"
cat "$f" >>"$target"
chown root:root "$target"
chmod 644 "$target"
echo " Angehaengt: ${base} -> ${target}"
done
fi
# ---------------------------------------------------------------------------
# HINWEIS: Die frueher hier erzeugte Rspamd-Whitelist
# (/etc/rspamd/override.d/docker_whitelist.map aus postfix-accounts.cf +
# statischer Domainliste) ist entfernt. Die zugehoerige multimap-Regel
# DOCKER_WL (-50) und das erzwungene "no action" aus force_actions.conf gibt
# es nicht mehr - sie waren ein Spoofing-Loch und haben echten Spam an
# weitergeleitete Adressen durchgereicht. Ersatz: rspamd/append.d/settings.conf.
# ---------------------------------------------------------------------------