service/drive: init from legacy and enable mail on error

This commit is contained in:
Felix Buehler 2023-03-19 16:14:20 +01:00
parent ea873305c8
commit 7bea060e81
7 changed files with 49 additions and 6 deletions

View file

@ -1,5 +0,0 @@
{ config, lib, pkgs, ... }:
{
services.smartd.enable = true;
}

View file

@ -16,4 +16,11 @@
boot.extraModulePackages = [ ];
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
my.hardware = {
drive-monitor = {
enable = true;
OnFailureMail = "server@buehler.rocks";
};
};
}

View file

@ -31,4 +31,11 @@
# Fix wifi disconnect
networking.networkmanager.wifi.powersave = false;
my.hardware = {
drive-monitor = {
enable = true;
OnFailureMail = "server@buehler.rocks";
};
};
}

View file

@ -12,6 +12,10 @@ in
my.hardware = {
bluetooth.enable = true;
debug.enable = true;
drive-monitor = {
enable = true;
OnFailureMail = "server@buehler.rocks";
};
firmware = {
enable = true;
cpuFlavor = cpuFlavor;

View file

@ -5,6 +5,7 @@
imports = [
./bluetooth
./debug
./drive-monitor
./firmware
./graphics
./keychron

View file

@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
let
cfg = config.my.hardware.drive-monitor;
in
{
options.my.hardware.drive-monitor = with lib; {
enable = mkEnableOption "drive-monitor configuration";
OnFailureMail = mkOption {
type = types.nullOr (types.str);
description = lib.mdDoc "Mail adress where to send the error report";
default = null;
example = "alarm@mail.com";
};
};
config = lib.mkIf cfg.enable {
services = {
postfix.enable = lib.mkIf (cfg.OnFailureMail != null) true;
smartd = {
enable = true;
notifications.mail = lib.mkIf (cfg.OnFailureMail != null) {
enable = true;
recipient = cfg.OnFailureMail;
};
};
};
};
}

View file

@ -81,7 +81,7 @@ in
config = lib.mkIf cfg.enable {
# mails can only be delivered if postfix is available
services.postfix.enable = cfg.OnFailureMail != null;
services.postfix.enable = lib.mkIf (cfg.OnFailureMail != null) true;
services.borgbackup.jobs.hetzner = {
# always backup everything and only define excludes