Archived
One file (variables.nix) holding every value that was previously hardcoded and repeated across modules: LAN domain/CIDR, home/tailnet domains, cross-host references (nix-cache substituter hostname, NFS server hostname, remote-builder user), PXE/PBS IPs, timezone, and the primary username. Wired in via flake.nix's specialArgs (and home-manager's extraSpecialArgs for the two home.nix files), so any module picks it up by just adding `vars` to its function arguments — no explicit import needed. Two hosts (nix-cache, server) now derive their own networking.hostName from the same variable other hosts use to reach them, so there's exactly one place to change either identifier. Purely mechanical: every substituted value matches what was already there, confirmed by identical toplevel .drv paths for all 17 targets before and after. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
27 lines
511 B
Nix
27 lines
511 B
Nix
{ vars, ... }:
|
|
|
|
{
|
|
fileSystems."/mnt/raspi" = {
|
|
device = "raspberrypi.${vars.tailnetDomain}:/home/raspi/raspi";
|
|
fsType = "nfs4";
|
|
options = [
|
|
"nofail"
|
|
"_netdev"
|
|
"noatime"
|
|
|
|
# Don't mount until first access
|
|
"x-systemd.automount"
|
|
|
|
# Unmount after 10 min idle
|
|
"x-systemd.idle-timeout=600"
|
|
|
|
# Give the Pi/Tailscale a little time to appear
|
|
"x-systemd.device-timeout=10s"
|
|
|
|
# Explicitly use NFSv4.2 if supported
|
|
"nfsvers=4.2"
|
|
];
|
|
};
|
|
|
|
}
|