fin holocron zfs on snowbelle
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
...
|
||||
}: let
|
||||
cfg = config.holocron.zfs;
|
||||
sec = config.sops.secrets;
|
||||
in {
|
||||
options.holocron.zfs = {
|
||||
enable = lib.mkEnableOption "enables zfs";
|
||||
@@ -12,28 +13,33 @@ in {
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# set network host id
|
||||
networking.hostId = "3e6e7055";
|
||||
|
||||
# enable zfs support
|
||||
boot.zfs.forceImportRoot = false;
|
||||
boot.kernelModules = ["zfs"];
|
||||
boot.supportedFilesystems = ["zfs"];
|
||||
boot.zfs.forceImportRoot = false;
|
||||
# boot.initrd.services.zfs.enable = true;
|
||||
# boot.zfs.requestEncryptionCredentials = true;
|
||||
|
||||
# arc cache size
|
||||
boot.kernelParams = ["zfs.zfs_arc_max=12884901888"];
|
||||
|
||||
# pools to import
|
||||
#boot.zfs.extraPools = [ "holocron" "holocron/archives" "/holocron/media" "/holocron/users" ];
|
||||
#boot.zfs.extraPools = [ "holocron" ];
|
||||
boot.zfs.extraPools = ["holocron"];
|
||||
|
||||
# enable smart monitoring
|
||||
|
||||
services.smartd = {
|
||||
enable = true;
|
||||
autodetect = true;
|
||||
defaults.monitored = "-a -o on -s (S/../.././05|L/../01/./05)";
|
||||
notifications.mail = {
|
||||
enable = true;
|
||||
sender = "zfs@snowbelle.lan";
|
||||
notifications = {
|
||||
test = false;
|
||||
mail = {
|
||||
enable = true;
|
||||
recipient = "blake";
|
||||
sender = "alerts@blakedheld.xyz";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -43,37 +49,52 @@ in {
|
||||
autoScrub.interval = "weekly";
|
||||
# email notifs
|
||||
zed = {
|
||||
enableMail = false;
|
||||
enableMail = true;
|
||||
settings = {
|
||||
ZED_EMAIL_ADDR = ["root"];
|
||||
ZED_EMAIL_ADDR = ["root" "blake"];
|
||||
# send notification if scrub succeeds
|
||||
ZED_NOTIFY_VERBOSE = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# install userspace tools for acl's
|
||||
# install userspace tools for smart
|
||||
environment.systemPackages = with pkgs; [smartmontools];
|
||||
|
||||
fileSystems."/holocron" = {
|
||||
device = "holocron";
|
||||
fsType = "zfs";
|
||||
options = ["nofail"];
|
||||
# mail test
|
||||
|
||||
services.mail.sendmailSetuidWrapper.enable = true;
|
||||
|
||||
programs.msmtp = {
|
||||
enable = true;
|
||||
setSendmail = true;
|
||||
|
||||
defaults = {
|
||||
aliases = "/etc/aliases";
|
||||
port = 587;
|
||||
auth = "plain";
|
||||
tls = "on";
|
||||
tls_starttls = "on";
|
||||
};
|
||||
|
||||
accounts.default = {
|
||||
host = "smtp.mail.me.com";
|
||||
user = "bdhelderman@icloud.com";
|
||||
from = "alerts@blakedheld.xyz";
|
||||
passwordeval = "/run/current-system/sw/bin/cat ${sec."email_pass".path}";
|
||||
};
|
||||
};
|
||||
fileSystems."/holocron/archives" = {
|
||||
device = "holocron/archives";
|
||||
fsType = "zfs";
|
||||
options = ["nofail"];
|
||||
};
|
||||
fileSystems."/holocron/users" = {
|
||||
device = "holocron/users";
|
||||
fsType = "zfs";
|
||||
options = ["nofail"];
|
||||
};
|
||||
fileSystems."/holocron/media" = {
|
||||
device = "holocron/media";
|
||||
fsType = "zfs";
|
||||
options = ["nofail"];
|
||||
|
||||
environment.etc.aliases.text = ''
|
||||
root: me@blakedheld.xyz
|
||||
blake: me@blakedheld.xyz
|
||||
'';
|
||||
|
||||
sops.secrets = {
|
||||
"email_pass" = {
|
||||
owner = "blake";
|
||||
group = "blake";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user