diff --git a/modules/homelab/nfs.nix b/modules/homelab/nfs.nix new file mode 100644 index 0000000..262273a --- /dev/null +++ b/modules/homelab/nfs.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, ... }: + +let + nfsExports = '' + /holocron/vault *(rw,sync,no_subtree_check,no_root_squash) + /holocron/media *(ro,sync,no_subtree_check) + ''; +in +{ + # enable nfs with all exports + services.nfs = { + server = { + enable = true; + exports = nfsExports; + }; + }; +} diff --git a/modules/homelab/smb.nix b/modules/homelab/smb.nix new file mode 100644 index 0000000..6d4c696 --- /dev/null +++ b/modules/homelab/smb.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: + +# define smb shares +let + smbShares = { + vault = { + path = "/holocron/vault"; + browseable = true; + writable = true; + guestOk = false; + }; + media = { + path = "/holocron/media"; + browseable = true; + writable = true; + guestOk = false; + }; + }; +in +{ + # enable smb with all shares + services.samba = { + enable = true; + settings = smbShares; + }; + +} diff --git a/modules/homelab/zfs.nix b/modules/homelab/zfs.nix new file mode 100644 index 0000000..dd471e2 --- /dev/null +++ b/modules/homelab/zfs.nix @@ -0,0 +1,27 @@ +{ config, pkgs, ... }: + +{ + + # set network host id + networking.hostId = "3e6e7055"; + + # enable zfs support + boot.kernelModules = [ "zfs" ]; + boot.supportedFilesystems = [ "zfs" ]; + + # enable smart monitoring + services.smartd.enable = true; + + # enable zfs + services.zfs = { + autoScrub.enable = true; + autoScrub.interval = "weekly"; + +# datasets = { +# "rpool/data" = { +# mountPoint = "/mnt/storage"; +# }; +# }; + }; + +}