{lib, ...}: let inherit (lib) concatMapStringsSep concatStringsSep; in { services.nfs.server = { enable = true; createMountPoints = true; exports = let mkExport = dir: opts: ips: "/export${dir} ${ concatMapStringsSep " " (ip: ip + "(${concatStringsSep "," opts})") ips }"; mkRootExport = opts: ips: mkExport "" (opts ++ ["crossmnt" "fsid=0"]) ips; allowedIps = ["10.0.0.244" "100.64.0.8" "10.0.0.159" "100.64.0.9"]; options = ["rw" "no_root_squash" "no_subtree_check"]; in '' ${mkRootExport options allowedIps} ${mkExport "/caddy" options allowedIps} ${mkExport "/headscale" options allowedIps} ''; }; }