diff --git a/hosts/hel1-a/configuration.nix b/hosts/hel1-a/configuration.nix index 7c78a0b..7e37b98 100644 --- a/hosts/hel1-a/configuration.nix +++ b/hosts/hel1-a/configuration.nix @@ -101,6 +101,13 @@ in { }; }; }; + + unitstatus = { + enable = true; + email = "motiejus+alerts@jakstys.lt"; + # see TODO in base/unitstatus/default.nix + #units = ["zfs-scrub"]; + }; }; }; @@ -587,36 +594,6 @@ in { }; }; - # https://northernlightlabs.se/2014-07-05/systemd-status-mail-on-unit-failure.html - "unit-status-mail@" = let - script = pkgs.writeShellScript "unit-status-mail" '' - set -e - MAILTO="motiejus+alerts@jakstys.lt" - UNIT=$1 - EXTRA="" - for e in "''${@:2}"; do - EXTRA+="$e"$'\n' - done - UNITSTATUS=$(${pkgs.systemd}/bin/systemctl status "$UNIT") - ${pkgs.postfix}/bin/sendmail $MAILTO <.unitConfig.OnFailure' to point to this one. + # - assert postfix is configured + options.mj.base.unitstatus = with lib.types; { + enable = lib.mkEnableOption "alert by email on unit failure"; + email = lib.mkOption {type = str;}; + #units = lib.mkOption {type = lisOf str;}; + }; + + config = + lib.mkIf config.mj.base.unitstatus.enable { + systemd.services."unit-status-mail@" = let + # https://northernlightlabs.se/2014-07-05/systemd-status-mail-on-unit-failure.html + script = pkgs.writeShellScript "unit-status-mail" '' + set -e + MAILTO="${config.mj.base.unitstatus.email}" + UNIT=$1 + EXTRA="" + for e in "''${@:2}"; do + EXTRA+="$e"$'\n' + done + UNITSTATUS=$(${pkgs.systemd}/bin/systemctl status "$UNIT") + ${pkgs.postfix}/bin/sendmail $MAILTO <