let perms22 = ["fmask=0022" "dmask=0022"]; perms77 = ["fmask=0077" "dmask=0077"]; permsRW = ["rw"]; permsSmb = ["rw" "gid=100" "vers=3.0" "x-systemd.automount" "x-systemd.requires=network-online.target"]; permsFm = ["file_mode=0644" "dir_mode=0755"]; uid0 = ["uid=1000"]; uid1 = ["uid=1001"]; in { device = { # Desktop desktop = { label = "Desktop"; name = "desktop"; sync = ""; ip = { address0 = "192.168.50.196"; }; boot = { options = perms22; }; storage0 = { mount = "/mnt/media/games"; device = "/dev/disk/by-label/Games"; options = permsRW; }; storage1 = { mount = "/mnt/media/storage"; device = "/dev/disk/by-label/Storage"; options = permsRW; }; }; # Laptop laptop = { label = "Laptop"; name = "laptop"; sync = ""; ip = { address0 = "192.168.50.142"; }; boot = { options = perms22; }; }; # Server server = let serverName = "server"; serverIP = "192.168.50.140"; in { label = "Server"; name = serverName; ip = { address0 = serverIP; }; boot = { options = perms77; }; storage0 = let nasPath = "NAS1"; in { mount = "/mnt/media/${nasPath}"; device = "/dev/disk/by-label/${nasPath}"; options = permsRW; }; samba0 = let share0Name = "media"; in { mount = "/mnt/media/${serverName}/${share0Name}"; device = "//${serverIP}/${share0Name}"; options = permsSmb ++ permsFm ++ uid0; }; }; # Synology nas = let user0 = "nick"; user1 = "garnet"; user2 = "fallaryn"; user3 = "denise"; user0Name = "Nick"; user1Name = "Garnet"; user2Name = "Fallaryn"; user3Name = "Denise"; nasName = "synology"; nasIP = "192.168.50.209"; 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 = permsSmb ++ uid0; }; # Garnet Home Folder folder1 = { mount = "/mnt/media/${nasName}/${user1}"; device = "//${nasIP}/homes/${user1Name}"; options = permsSmb ++ uid1; }; # Fallaryn Home Folder folder2 = { mount = "/mnt/media/${nasName}/${user2}"; device = "//${nasIP}/homes/${user2Name}"; options = permsSmb ++ uid0; }; # Denise Home Folder folder3 = { mount = "/mnt/media/${nasName}/${user3}"; device = "//${nasIP}/homes/${user3Name}"; options = permsSmb ++ uid0; }; # Minecraft Worlds folder4 = { mount = "/home/${user1}/.local/share/PrismLauncher/instances/1.21/.minecraft/saves"; device = "//${nasIP}/homes/${user1Name}/Minecraft"; options = permsSmb ++ uid1; }; }; # Fallaryn Desktop fallaryn = { label = "fallaryn"; name = "fallaryn"; ip = { address0 = ""; }; boot = { options = perms22; }; storage0 = { mount = "/run/media/games"; device = "/dev/disk/by-label/Games"; options = permsRW; }; storage1 = { mount = "/run/media/entertainment"; device = "/dev/disk/by-label/Entertainment"; options = permsRW; }; }; # Pixel 7 Pro phone = { name = "pixel"; sync = "AE65XCK-4FYDDBB-SMPCDQO-U3CZUHA-LAWTKZY-ZBUGVNI-ZRYACB2-FFNFVQF"; ip = { address0 = "192.168.50.243"; }; }; # Samsung S7 FE tablet = { name = "tablet"; sync = "I2ZSCZU-T4JMUJJ-XCUQ3MY-G5EUFZ5-KRG2DRY-XIBJZZM-FQW3UMY-CBCTUQU"; ip = { address0 = "192.168.50.189"; }; }; # No particular system wildcard = { ip = { address0 = "127.0.0.1"; # Local address1 = "0.0.0.0"; # All address2 = "192.168.50.1"; # Router address3 = "192.168.50.0"; # Router }; }; }; }