{ config, lib, ... }: let cfg = config.os.srv.nfs; in { options.os.srv.nfs.enable = lib.mkEnableOption "enables nfs drive sharing"; config = lib.mkIf cfg.enable { services.nfs.server = { enable = true; nproc = 4; # Lowered due to low traffic for a home server createMountPoints = true; exports = '' /data/media 10.1.0.0/24(rw,all_squash,anonuid=1000,anongid=100,async,insecure,no_subtree_check) \ 10.3.0.0/24(rw,all_squash,anonuid=1000,anongid=100,async,insecure,no_subtree_check) \ 10.4.0.0/24(rw,all_squash,anonuid=1000,anongid=100,async,insecure,no_subtree_check) /data/vault 10.1.0.0/24(rw,all_squash,anonuid=1000,anongid=100,async,insecure,no_subtree_check) \ 10.3.0.0/24(rw,all_squash,anonuid=1000,anongid=100,async,insecure,no_subtree_check) \ 10.4.0.0/24(rw,all_squash,anonuid=1000,anongid=100,async,insecure,no_subtree_check) ''; }; networking.firewall.allowedTCPPorts = [ 2049 ]; }; }