#!/usr/bin/env bash set -euo pipefail source ./lib.sh log "Monit konfigurieren…" cat > /etc/monit/monitrc <<'EOF' set daemon 60 set logfile syslog facility log_daemon check process postfix with pidfile /var/spool/postfix/pid/master.pid start program = "/bin/systemctl start postfix" stop program = "/bin/systemctl stop postfix" if failed port 25 protocol smtp then restart if failed port 465 type tcp ssl then restart if failed port 587 type tcp then restart check process dovecot with pidfile /var/run/dovecot/master.pid start program = "/bin/systemctl start dovecot" stop program = "/bin/systemctl stop dovecot" if failed port 143 type tcp then restart if failed port 993 type tcp ssl then restart if failed port 110 type tcp then restart if failed port 995 type tcp ssl then restart check process mariadb with pidfile /var/run/mysqld/mysqld.pid start program = "/bin/systemctl start mariadb" stop program = "/bin/systemctl stop mariadb" if failed port 3306 type tcp then restart check process redis-server with pidfile /run/redis/redis-server.pid start program = "/bin/systemctl start redis-server" stop program = "/bin/systemctl stop redis-server" if failed port 6379 type tcp then restart check process rspamd with pidfile /run/rspamd/rspamd.pid start program = "/bin/systemctl start rspamd" stop program = "/bin/systemctl stop rspamd" if failed port 11332 type tcp then restart check process opendkim with pidfile /run/opendkim/opendkim.pid start program = "/bin/systemctl start opendkim" stop program = "/bin/systemctl stop opendkim" if failed port 8891 type tcp then restart check process nginx with pidfile /run/nginx.pid start program = "/bin/systemctl start nginx" stop program = "/bin/systemctl stop nginx" if failed port 80 type tcp then restart if failed port 443 type tcp ssl then restart # Reverb WebSocket check process mailwolt-ws matching "reverb:start" start program = "/bin/systemctl start mailwolt-ws" stop program = "/bin/systemctl stop mailwolt-ws" if failed host 127.0.0.1 port 8080 type tcp for 2 cycles then restart if 5 restarts within 5 cycles then timeout EOF chmod 600 /etc/monit/monitrc monit -t && systemctl enable --now monit monit reload monit summary || true