summaryrefslogtreecommitdiff
path: root/modules/root/nas.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/root/nas.nix')
-rw-r--r--modules/root/nas.nix29
1 files changed, 29 insertions, 0 deletions
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";
+ };
+ };
+}