{ lib, ... }: let # See microbel:/etc/exports letters = [ "a" "b" "c" "d" "h" "i" "j" "k" "l" "m" "z" ]; in { systemd.mounts = map (l: { description = "PVV Homedirs Partition ${l}"; before = [ "remote-fs.target" ]; wantedBy = [ "multi-user.target" ]; type = "nfs"; what = "homepvv${l}.pvv.ntnu.no:/export/home/pvv/${l}"; where = "/run/pvv-home-mounts/${l}"; options = lib.concatStringsSep "," [ "nfsvers=3" "proto=tcp" "auto" "async" # We don't want to update access time constantly "noatime" # No SUID/SGID, no special devices "nosuid" "nodev" # TODO: are there cgi scripts that modify stuff in peoples homedirs? # "ro" "rw" # TODO: can we enable this and still run cgi stuff? # "noexec" ]; }) letters; systemd.automounts = map (l: { description = "PVV Homedirs Partition ${l}"; wantedBy = [ "multi-user.target" ]; where = "/run/pvv-home-mounts/${l}"; automountConfig = { # Unmount if not accessed in 5 mins TimeoutIdleSec = "5min"; }; }) letters; }