From 1e98b54454f86dc3963dd1ca6e3522dd2289d6aa Mon Sep 17 00:00:00 2001 From: Leyla Becker Date: Sun, 9 Mar 2025 14:10:50 -0500 Subject: [PATCH] added more config for nfs mounts --- configurations/nixos/defiant/configuration.nix | 7 +++++++ .../nixos/horizon/hardware-configuration.nix | 12 +++++++++--- .../nixos/twilight/hardware-configuration.nix | 4 ++-- modules/nixos-modules/server/jellyfin.nix | 8 ++++++-- .../nixos-modules/server/network_storage/default.nix | 2 +- modules/nixos-modules/server/network_storage/nfs.nix | 4 ++-- 6 files changed, 27 insertions(+), 10 deletions(-) diff --git a/configurations/nixos/defiant/configuration.nix b/configurations/nixos/defiant/configuration.nix index 9d6a434..2ec7914 100644 --- a/configurations/nixos/defiant/configuration.nix +++ b/configurations/nixos/defiant/configuration.nix @@ -58,6 +58,7 @@ folder = "leyla"; user = "leyla"; group = "leyla"; + bind = "/home/leyla/documents"; } { folder = "eve"; @@ -69,6 +70,12 @@ user = "root"; group = "users"; } + { + folder = "media"; + user = "jellyfin"; + group = "jellyfin_media"; + bind = config.host.jellyfin.media_directory; + } ]; nfs = { enable = true; diff --git a/configurations/nixos/horizon/hardware-configuration.nix b/configurations/nixos/horizon/hardware-configuration.nix index b7e7d84..f5342a1 100644 --- a/configurations/nixos/horizon/hardware-configuration.nix +++ b/configurations/nixos/horizon/hardware-configuration.nix @@ -38,23 +38,29 @@ fsType = "vfat"; }; - "/mnt/leyla_home" = { + "/mnt/leyla_documents" = { device = "defiant:/exports/leyla"; fsType = "nfs"; options = ["x-systemd.automount" "user" "noatime" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc"]; }; - "/mnt/eve_home" = { + "/mnt/eve_documents" = { device = "defiant:/exports/eve"; fsType = "nfs"; options = ["x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc"]; }; - "/mnt/users_home" = { + "/mnt/users_documents" = { device = "defiant:/exports/users"; fsType = "nfs"; options = ["x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc"]; }; + + "/mnt/media" = { + device = "defiant:/exports/media"; + fsType = "nfs"; + options = ["user" "noatime" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc"]; + }; }; environment.systemPackages = with pkgs; [ diff --git a/configurations/nixos/twilight/hardware-configuration.nix b/configurations/nixos/twilight/hardware-configuration.nix index 53e8cc2..c215e02 100644 --- a/configurations/nixos/twilight/hardware-configuration.nix +++ b/configurations/nixos/twilight/hardware-configuration.nix @@ -47,13 +47,13 @@ options = ["fmask=0022" "dmask=0022"]; }; - "/mnt/leyla_home" = { + "/mnt/leyla_documents" = { device = "defiant:/exports/leyla"; fsType = "nfs"; options = ["x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc"]; }; - "/mnt/users_home" = { + "/mnt/users_documents" = { device = "defiant:/exports/users"; fsType = "nfs"; options = ["x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc"]; diff --git a/modules/nixos-modules/server/jellyfin.nix b/modules/nixos-modules/server/jellyfin.nix index 4746ad3..ba58fe9 100644 --- a/modules/nixos-modules/server/jellyfin.nix +++ b/modules/nixos-modules/server/jellyfin.nix @@ -7,7 +7,6 @@ jellyfinPort = 8096; jellyfin_data_directory = "/var/lib/jellyfin"; jellyfin_cache_directory = "/var/cache/jellyfin"; - jellyfin_media_directory = "/srv/jellyfin/media"; in { options.host.jellyfin = { enable = lib.mkEnableOption "should jellyfin be enabled on this computer"; @@ -21,6 +20,11 @@ in { description = "ex subdomain of base domain that jellyfin will be hosted at"; default = []; }; + media_directory = lib.mkOption { + type = lib.types.str; + description = "directory jellyfin media will be hosted at"; + default = "/srv/jellyfin/media"; + }; }; config = lib.mkIf config.host.jellyfin.enable ( @@ -126,7 +130,7 @@ in { hideMounts = true; directories = [ { - directory = jellyfin_media_directory; + directory = config.host.jellyfin.media_directory; user = "jellyfin"; group = "jellyfin_media"; mode = "1770"; diff --git a/modules/nixos-modules/server/network_storage/default.nix b/modules/nixos-modules/server/network_storage/default.nix index fecc05f..f756738 100644 --- a/modules/nixos-modules/server/network_storage/default.nix +++ b/modules/nixos-modules/server/network_storage/default.nix @@ -57,7 +57,7 @@ in { # create any folders that we need to have for our exports systemd.tmpfiles.rules = [ - "d ${config.host.network_storage.export_directory} 2770 root root -" + "d ${config.host.network_storage.export_directory} 2775 root root -" ] ++ ( builtins.map ( diff --git a/modules/nixos-modules/server/network_storage/nfs.nix b/modules/nixos-modules/server/network_storage/nfs.nix index e793b16..9aaab39 100644 --- a/modules/nixos-modules/server/network_storage/nfs.nix +++ b/modules/nixos-modules/server/network_storage/nfs.nix @@ -38,8 +38,8 @@ services.nfs.server = { enable = true; exports = lib.strings.concatLines ( - builtins.map ( - directory: "${directory._directory} 100.64.0.0/10(rw,sync,no_subtree_check,crossmnt)" + lib.lists.imap0 ( + i: directory: "${directory._directory} 100.64.0.0/10(rw,sync,no_subtree_check,crossmnt,fsid=${builtins.toString i})" ) ( builtins.filter (