Archived
Adds nested vars.nfsShares (subpath + mountpoint per dataset, previously duplicated independently across server.nix's NFS exports, mount-data.nix's client mounts, docker.nix's tmpfiles rules, traefik's log rotation path, and hosts/server/host.nix's beszel config), vars.ports (every literal port in modules/ and hosts/, kept as separate entries per service even where numbers coincide so changing one can't silently change another), plus vars.proxmoxImageSize, vars.nixCacheGcMaxAge, vars.traefikLogRotate, and raspberryPiHost/raspiNfsPath/raspiMountpoint for the Pi's own NFS export. Also fixes docker.nix/minimal.nix/gui.nix hardcoding the literal "nixos" username instead of the existing vars.primaryUser, found during the sweep. system.stateVersion is deliberately left untouched everywhere -- per NixOS's own docs that value must stay fixed from first install, not follow any shared variable. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01La55Nsss8jZ7ZuzUV9mfot
29 lines
1.1 KiB
Nix
29 lines
1.1 KiB
Nix
{ vars, lib, ... }:
|
|
|
|
{
|
|
imports = [
|
|
../beszel/enable-agent.nix
|
|
../services/zfs/enable-service.nix
|
|
];
|
|
|
|
boot.zfs.extraPools = [ (lib.removePrefix "/" vars.storageRoot) ];
|
|
|
|
systemd.services.nfs-server = {
|
|
after = [ "zfs-mount.service" ];
|
|
requires = [ "zfs-mount.service" ];
|
|
};
|
|
|
|
services.nfs.server = {
|
|
enable = true;
|
|
exports = ''
|
|
${vars.storageRoot}/${vars.nfsShares.dockerConfig.subpath} ${vars.lanCidr}(rw,sync,no_subtree_check,no_root_squash)
|
|
${vars.storageRoot}/${vars.nfsShares.dockerVolumes.subpath} ${vars.lanCidr}(rw,sync,no_subtree_check,no_root_squash)
|
|
${vars.storageRoot}/${vars.nfsShares.dockerDatabases.subpath} ${vars.lanCidr}(rw,sync,no_subtree_check,no_root_squash)
|
|
${vars.storageRoot}/${vars.nfsShares.nextcloudData.subpath} ${vars.lanCidr}(rw,sync,no_subtree_check,no_root_squash)
|
|
${vars.storageRoot}/${vars.nfsShares.raspiVolumes.subpath} ${vars.lanCidr}(rw,sync,no_subtree_check,no_root_squash)
|
|
'';
|
|
};
|
|
|
|
networking.firewall.allowedTCPPorts = [ vars.ports.nfsRpcbind vars.ports.nfsd ];
|
|
}
|