let ownerWriteOthersReadMask = ["fmask=0022" "dmask=0022"]; ownerExclusiveReadWriteMask = ["fmask=0077" "dmask=0077"]; readWritePermissions = ["rw"]; sambaPermissions = ["rw" "gid=100" "vers=3.0" "x-systemd.automount" "x-systemd.requires=network-online.target"]; fileModeAndDirMode = ["file_mode=0644" "dir_mode=0755"]; userIdForUser0 = ["uid=1000"]; userIdForUser1 = ["uid=1001"]; in { device = { # Desktop desktop = { label = "Desktop"; name = "desktop"; sync = ""; ip = { address0 = "192.168.50.196"; }; boot = { options = ownerWriteOthersReadMask; }; storage0 = { mount = "/mnt/media/games"; device = "/dev/disk/by-label/Games"; options = readWritePermissions; }; storage1 = { mount = "/mnt/media/storage"; device = "/dev/disk/by-label/Storage"; options = readWritePermissions; }; }; # Laptop laptop = { label = "Laptop"; name = "laptop"; sync = ""; ip = { address0 = "192.168.50.142"; }; boot = { options = ownerWriteOthersReadMask; }; }; # Server server = let serverName = "server"; serverIP = "192.168.50.140"; serverStorageDriveName = "NAS1"; in { label = "Server"; name = serverName; ip = { address0 = serverIP; }; boot = { options = ownerExclusiveReadWriteMask; }; storage0 = { mount = "/mnt/media/${serverStorageDriveName}"; device = "/dev/disk/by-label/${serverStorageDriveName}"; options = readWritePermissions; }; samba0 = { mount = "/mnt/media/${serverName}"; device = "//${serverIP}"; options = sambaPermissions ++ fileModeAndDirMode ++ userIdForUser0; }; }; # Synology nas = let user0 = "nick"; user1 = "garnet"; user0Name = "Nick"; user1Name = "Garnet"; nasName = "synology"; nasIP = "192.168.50.210"; in { label = "Synology"; sync = "MWRGX2V-F5XKE5E-REP6ECT-OOPFBMF-22NHSMW-YFBU6MB-PLFUN63-R3MW2QX"; name = nasName; ip = { address0 = nasIP; }; # Nick Home Folder folder0 = { mount = "/mnt/media/${nasName}/${user0}"; device = "//${nasIP}/homes/${user0Name}"; options = sambaPermissions ++ userIdForUser0; }; # Garnet Home Folder folder1 = { mount = "/mnt/media/${nasName}/${user1}"; device = "//${nasIP}/homes/${user1Name}"; options = sambaPermissions ++ userIdForUser1; }; # Minecraft Worlds folder4 = { mount = "/home/${user1}/.local/share/PrismLauncher/instances/1.21/.minecraft/saves"; device = "//${nasIP}/homes/${user1Name}/Minecraft"; options = sambaPermissions ++ userIdForUser1; }; }; # Pixel 9 phone = { name = "pixel"; sync = "RMDKNJY-BTX6FYF-G6SR332-WS6HARI-PF74SC6-VPBSGRQ-MKVQZEQ-KSIB6QV"; ip = { address0 = "192.168.50.243"; }; }; # Printer printer0 = { label = "Canon-TR7620a"; ip = { address0 = ""; }; }; printer1 = { label = "Brother-HL-2170W"; ip = { address0 = "192.168.50.195"; }; }; # Samsung S7 FE tablet = { name = "tablet"; sync = "I2ZSCZU-T4JMUJJ-XCUQ3MY-G5EUFZ5-KRG2DRY-XIBJZZM-FQW3UMY-CBCTUQU"; ip = { address0 = "192.168.50.189"; }; }; }; }