{ config, lib, pkgs, ... }: with pkgs; let sender = "akasroua@disroot.org"; recipient = "akasroua+smart@disroot.org"; in { # Notify when a disk starts going haywire services.smartd = { enable = true; defaults.monitored = "-H -f -t -C 197 -U 198 -d nvme"; autodetect = false; devices = [ { device = "/dev/nvme0"; } ]; notifications.mail = { enable = true; sender = sender; recipient = recipient; mailer = "${msmtp}/bin/msmtp -t --read-envelope-from"; }; }; # Notify about zpool problems services.zfs.zed = { enableMail = false; settings = { ZED_EMAIL_ADDR = [ "root" ]; ZED_EMAIL_PROG = "${msmtp}/bin/msmtp"; ZED_EMAIL_OPTS = "-s '@SUBJECT@' @ADDRESS@"; }; }; # HACK Use an alias to use msmtp instead of the ZED mailer environment.etc.aliases.text = '' root: ${recipient} ''; # Set up msmtp as notifier programs.msmtp = { enable = true; defaults = { auth = true; aliases = "/etc/aliases"; port = 587; tls = true; }; accounts = { default = { host = "disroot.org"; user = "akasroua@disroot.org"; passwordeval = "${coreutils}/bin/cat ${config.age.secrets.msmtp.path}"; }; }; }; }