feat(nfs): centralize nixdesk jellyfin nfs client module
Move the nixdesk jellyfin NFS client configuration from individual host services to a centralized NixOS module in `modules/system/nfs/`. This change: - Creates `modules/system/nfs/default.nix` containing the `nixdeskJellyfin` flake module. - Removes redundant NFS client definitions from `modules/hosts/nix-server/` and `modules/hosts/r5500/`. - Updates `modules/hosts/r5500/configuration.nix` to use the new centralized module. - Cleans up unused local disk configuration in `modules/hosts/14900k/`.
This commit is contained in:
@@ -1,9 +1,5 @@
|
|||||||
# Extra local disks. Declared here, not in hardware.nix (hardware.nix is generated).
|
# Extra local disks. Declared here, not in hardware.nix (hardware.nix is generated).
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
|
||||||
# Stable UID so NTFS `uid=` matches `users.users.olivier` (override if your account is not 1000).
|
|
||||||
olivierUid = config.users.users.olivier.uid or 1000;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
users.users.olivier.uid = lib.mkDefault 1000;
|
users.users.olivier.uid = lib.mkDefault 1000;
|
||||||
# LABEL="MediaLibrary" (btrfs on sda1 by UUID). No subvol=@ — this disk has no @ subvolume.
|
# LABEL="MediaLibrary" (btrfs on sda1 by UUID). No subvol=@ — this disk has no @ subvolume.
|
||||||
@@ -33,15 +29,4 @@ in
|
|||||||
# LABEL="Deep Storage Unit". Owner olivier, group nfsmedia (990) so:
|
# LABEL="Deep Storage Unit". Owner olivier, group nfsmedia (990) so:
|
||||||
# - local logins write as user 1000 (owner rwx);
|
# - local logins write as user 1000 (owner rwx);
|
||||||
# - NFS (all_squash → uid/gid 990) matches group 990 → rwx (see jellyfin-nfs-export).
|
# - NFS (all_squash → uid/gid 990) matches group 990 → rwx (see jellyfin-nfs-export).
|
||||||
#fileSystems."/mnt/test" = {
|
|
||||||
# device = "/dev/disk/by-uuid/BC12E55E12E51DE0";
|
|
||||||
# fsType = "ntfs-3g";
|
|
||||||
# options = [
|
|
||||||
# "rw"
|
|
||||||
# "force"
|
|
||||||
# "uid=${toString olivierUid}"
|
|
||||||
# "gid=990"
|
|
||||||
# "umask=0002"
|
|
||||||
# ];
|
|
||||||
#};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
# NFS mounts of nixdesk (14900k) bulk storage for nix-server. Exports live in
|
|
||||||
# modules/hosts/14900k/_private/jellyfin-nfs-export.nix
|
|
||||||
#
|
|
||||||
# Jellyfin library paths (see also services/jellyfin.nix):
|
|
||||||
# Movies → /mnt/nixdesk-jellyfin/movies
|
|
||||||
# Shows → /mnt/nixdesk-jellyfin/tv
|
|
||||||
#
|
|
||||||
# If you see "Stale file handle" under /mnt after changing exports or fsid on nixdesk, drop the
|
|
||||||
# old client mount and let automount reattach, e.g.:
|
|
||||||
# sudo umount -l /mnt/nixdesk-jellyfin
|
|
||||||
# ls /mnt/nixdesk-jellyfin
|
|
||||||
# (or reboot nix-server.)
|
|
||||||
{ ... }:
|
|
||||||
let
|
|
||||||
nfsExportHost = "192.168.2.25";
|
|
||||||
# nfsvers+tcp: predictable Linux↔Linux; lookupcache=none: fewer stale dentries after export changes.
|
|
||||||
nfsClientOpts = [
|
|
||||||
"rw"
|
|
||||||
"noatime"
|
|
||||||
"nofail"
|
|
||||||
"_netdev"
|
|
||||||
"nfsvers=3"
|
|
||||||
"tcp"
|
|
||||||
"lookupcache=none"
|
|
||||||
"x-systemd.automount"
|
|
||||||
"x-systemd.idle-timeout=3600"
|
|
||||||
];
|
|
||||||
in
|
|
||||||
{
|
|
||||||
fileSystems."/mnt/nixdesk-jellyfin" = {
|
|
||||||
device = "${nfsExportHost}:/mnt/deep/jellyfin";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = nfsClientOpts;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# NFS mounts of nixdesk (14900k) bulk storage for r5500. Exports live in
|
|
||||||
# modules/hosts/14900k/_private/jellyfin-nfs-export.nix
|
|
||||||
#
|
|
||||||
# Jellyfin library paths:
|
|
||||||
# Movies → /mnt/nixdesk-jellyfin/movies
|
|
||||||
# Shows → /mnt/nixdesk-jellyfin/tv
|
|
||||||
{ ... }:
|
|
||||||
let
|
|
||||||
nfsExportHost = "192.168.2.25";
|
|
||||||
nfsClientOpts = [
|
|
||||||
"rw"
|
|
||||||
"noatime"
|
|
||||||
"nofail"
|
|
||||||
"_netdev"
|
|
||||||
"nfsvers=3"
|
|
||||||
"tcp"
|
|
||||||
"lookupcache=none"
|
|
||||||
"x-systemd.automount"
|
|
||||||
"x-systemd.idle-timeout=3600"
|
|
||||||
];
|
|
||||||
in
|
|
||||||
{
|
|
||||||
fileSystems."/mnt/nixdesk-jellyfin" = {
|
|
||||||
device = "${nfsExportHost}:/mnt/deep/jellyfin";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = nfsClientOpts;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
./_private/media-disk.nix
|
./_private/media-disk.nix
|
||||||
./_private/media-paths.nix
|
./_private/media-paths.nix
|
||||||
./_services/docker-media.nix
|
./_services/docker-media.nix
|
||||||
./_services/nixdesk-nfs-client.nix
|
self.nixosModules.nixdeskJellyfin
|
||||||
./_services/jellyfin.nix
|
./_services/jellyfin.nix
|
||||||
./_services/sonarr.nix
|
./_services/sonarr.nix
|
||||||
./_services/radarr.nix
|
./_services/radarr.nix
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# NFS mount of nixdesk (14900k) bulk storage for clients. Exports live in
|
||||||
|
# modules/hosts/14900k/_private/jellyfin-nfs-export.nix
|
||||||
|
#
|
||||||
|
# Jellyfin library paths (see also jellyfin.nix):
|
||||||
|
# Movies → /mnt/nixdesk-jellyfin/movies
|
||||||
|
# Shows → /mnt/nixdesk-jellyfin/tv
|
||||||
|
#
|
||||||
|
# If you see "Stale file handle" under /mnt after changing exports or fsid on nixdesk, drop the
|
||||||
|
# old client mount and let automount reattach, e.g.:
|
||||||
|
# sudo umount -l /mnt/nixdesk-jellyfin
|
||||||
|
# ls /mnt/nixdesk-jellyfin
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.nixosModules.nixdeskJellyfin =
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
nfsExportHost = "192.168.2.25";
|
||||||
|
# nfsvers+tcp: predictable Linux↔Linux; lookupcache=none: fewer stale dentries after export changes.
|
||||||
|
nfsClientOpts = [
|
||||||
|
"rw"
|
||||||
|
"noatime"
|
||||||
|
"nofail"
|
||||||
|
"_netdev"
|
||||||
|
"nfsvers=3"
|
||||||
|
"tcp"
|
||||||
|
"lookupcache=none"
|
||||||
|
"x-systemd.automount"
|
||||||
|
"x-systemd.idle-timeout=3600"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
fileSystems."/mnt/nixdesk-jellyfin" = {
|
||||||
|
device = "${nfsExportHost}:/mnt/deep/jellyfin";
|
||||||
|
fsType = "nfs";
|
||||||
|
options = nfsClientOpts;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user