summary refs log tree commit diff stats
path: root/modules/mailserver.nix
diff options
context:
space:
mode:
authorChristian Krinitsin <code@krinitsin.xyz>2025-04-02 09:01:59 +0200
committerChristian Krinitsin <code@krinitsin.xyz>2025-04-02 09:01:59 +0200
commitfb6c96099b917e5e1956aac54a107caddb9b845e (patch)
treea6957aab534082d7b7fc3645422195c2a056b665 /modules/mailserver.nix
parent3794179508d9ee5d5535d3d62bc94c6416988988 (diff)
downloadnosix-fb6c96099b917e5e1956aac54a107caddb9b845e.tar.gz
nosix-fb6c96099b917e5e1956aac54a107caddb9b845e.zip
add monit, a monitoring service
Diffstat (limited to 'modules/mailserver.nix')
-rw-r--r--modules/mailserver.nix16
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/mailserver.nix b/modules/mailserver.nix
index 71ca506..80c8af5 100644
--- a/modules/mailserver.nix
+++ b/modules/mailserver.nix
@@ -38,5 +38,21 @@
      '';
   };
 
+  services.monit.config = ''
+    check process postfix with pidfile /var/lib/postfix/queue/pid/master.pid
+          start program = "${pkgs.systemd}/bin/systemctl start postfix"
+          stop program = "${pkgs.systemd}/bin/systemctl stop postfix"
+          if failed port 25 protocol smtp for 5 cycles then restart
+
+    check process dovecot with pidfile /var/run/dovecot2/master.pid
+          start program = "${pkgs.systemd}/bin/systemctl start dovecot2"
+          stop program = "${pkgs.systemd}/bin/systemctl stop dovecot2"
+          if failed host mail.krinitsin.com port 993 type tcpssl sslauto protocol imap for 5 cycles then restart
+
+    check process rspamd with matching "rspamd: main process"
+          start program = "${pkgs.systemd}/bin/systemctl start rspamd"
+          stop program = "${pkgs.systemd}/bin/systemctl stop rspamd"
+  '';
+
   security.acme.certs."krinitsin.com".extraDomainNames = [ "webmail.krinitsin.com" ];
 }