summaryrefslogtreecommitdiff
path: root/os/srv/nfs.nix
blob: 07f331ea94ced9d7cec1e048d176db8e74e75a22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{ 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 ];
  };
}