From 1835aa04051f2f0c41017423f2bcba6c549f26b0 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 5 Jan 2025 16:19:45 -0600 Subject: overhual --- modules/root/nas.nix | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 modules/root/nas.nix (limited to 'modules/root/nas.nix') diff --git a/modules/root/nas.nix b/modules/root/nas.nix new file mode 100644 index 0000000..0e11196 --- /dev/null +++ b/modules/root/nas.nix @@ -0,0 +1,29 @@ +{ lib, config, ... } : +let + mkNetworkFileSystem = device : { + device = "${device}"; + fsType = "nfs"; + options = [ "noauto" "defaults" ]; + }; +in { + options = { + nas = { + enable = lib.mkEnableOption "enable network shares"; + home.enable = lib.mkEnableOption "enable home network shares"; + office.enable = lib.mkEnableOption "enable office network shares"; + }; + }; + + config = lib.mkIf config.nas.enable { + fileSystems = lib.optionalAttrs config.nas.home.enable { + "/media/Storage/Media" = mkNetworkFileSystem "truenas-home:/mnt/Storage/Media"; + "/media/Storage/Backups" = mkNetworkFileSystem "truenas-home:/mnt/Storage/Backups"; + "/media/Storage/Tapes" = mkNetworkFileSystem "truenas-home:/mnt/Storage/Backups/Tapes"; + "/media/Family Photos" = mkNetworkFileSystem "truenas-home:/mnt/Media/Photos"; + } // lib.optionalAttrs config.nas.office.enable { + "/media/chexx/chexx" = mkNetworkFileSystem "truenas-office:/mnt/Storage/chexx"; + "/media/chexx/tkdocs" = mkNetworkFileSystem "truenas-office:/mnt/Storage/Users/Tim-Keller"; + "/media/chexx/scans" = mkNetworkFileSystem "truenas-office:/mnt/Storage/Scans"; + }; + }; +} -- cgit v1.2.3