54f607d063
control runs blackbox_exporter on loopback, probing each nameserver's public v4+v6 address for every zone: SOA (zone served) and DNSKEY (still signed, since blackbox has no DO-bit option). Probe definitions are shared between the exporter config and the VictoriaMetrics scrape jobs so they can't drift. Verified live against ns1/ns2 over v4 and v6.
30 lines
843 B
Nix
30 lines
843 B
Nix
{
|
|
imports = [
|
|
../../modules/hetzner-firewall.nix
|
|
../../modules/static-ipv6.nix
|
|
../../modules/monitoring/exporters.nix
|
|
../../modules/monitoring/server.nix
|
|
../../modules/monitoring/blackbox.nix
|
|
../../modules/monitoring/alerts.nix
|
|
../../modules/docs.nix
|
|
];
|
|
|
|
clan.core.sops.defaultGroups = [ "admins" ];
|
|
|
|
# Public IPv6; SLAAC doesn't bring it up here.
|
|
cnx.staticIPv6 = {
|
|
enable = true;
|
|
address = "2a01:4f9:c013:e6d0::1";
|
|
};
|
|
|
|
time.timeZone = "Etc/GMT-3"; # UTC+3 (fixed offset, no DST)
|
|
services.timesyncd.enable = true;
|
|
|
|
# Public Hetzner Cloud firewalls, synced from this config on every deploy.
|
|
# Rules live in their own data file; see that file for the no-public-SSH note.
|
|
cnx.hetznerFirewall = {
|
|
enable = true;
|
|
firewalls = import ../../modules/hetzner-firewall-rules.nix;
|
|
};
|
|
}
|