system/hosts/r5.nix (view raw)
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | {
config,
lib,
pkgs,
...
}:
let
hostName = "r5";
domain = "home.arpa";
tailnet = "fin-marlin.ts.net";
in
{
imports = [
../roles/home.nix
../roles/server.nix
];
age.secrets = {
acme.file = ../../secrets/acme.age;
syncthing.file = ../../secrets/syncthing.age;
};
networking = {
useDHCP = true;
inherit domain hostName;
hosts = {
"fd7a:115c:a1e0::53" = [
"tailscale"
"ts"
];
"192.168.100.1" = [
"modem"
"pyur"
];
};
nameservers = [
"9.9.9.11"
"149.112.112.11"
"2620:fe::11"
"2620:fe::fe:11"
];
nftables.enable = true;
};
systemd.network = {
enable = true;
};
services.resolved = {
enable = true;
settings.Resolve = {
DNS = [ ];
LLMNR = false;
MulticastDNS = true;
};
};
environment.systemPackages = with pkgs; [
file
tree
knot-dns
];
users.users.alin = {
isNormalUser = true;
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keys = [
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBENXbdPPOq0mA+9bPklpUkikvIXjCEKE5IRwNPNMr5/Ta1J/ND737fexCjEb7YPoAJtaf0gD/JThQQi/RxDTvy4= alin@secretive.marvin.local"
];
};
services.caddy = {
globalConfig = ''
pki {
ca home {
name "Home CA"
}
}
'';
virtualHosts = {
"${hostName}.${domain}" = {
serverAliases = [ "${hostName}.${tailnet}" ];
extraConfig = ''
tls {
issuer internal {
ca home
}
}
root /var/lib/caddy/ca
file_server browse
'';
};
"ca.${domain}" = {
extraConfig = ''
tls {
issuer internal {
ca home
}
}
acme_server {
allow {
domains *.test *.${domain}
}
}
'';
};
};
};
nix = {
settings = {
max-jobs = 2;
builders-use-substitutes = true;
};
};
services.timesyncd.enable = false;
services.chrony = {
enable = true;
extraConfig = ''
rtcdevice /dev/rtc0
rtcfile /var/lib/chrony/rtc
rtcautotrim 30
allow 10.0.0.0/8
allow fd12:d04f:65d:42::0/56
'';
};
system.stateVersion = "25.11";
}
|