system-manager-wakasu
1{
2 globals,
3 inputs,
4 ...
5}:
6let
7 dns = inputs.dns;
8
9 # Generate zone file content using dns.nix
10 mkZone = zoneName: zoneFile: dns.lib.toString zoneName (import zoneFile { inherit dns globals; });
11in
12{
13 services.bind = {
14 enable = true;
15 forwarders = [
16 "8.8.8.8"
17 "8.8.4.4"
18 ];
19 extraOptions = ''
20 dnssec-validation no;
21 '';
22 cacheNetworks = [ "127.0.0.0/8" ] ++ globals.net.dns.cacheNetworks;
23
24 zones = [
25 # sbr.pm zone
26 {
27 name = "sbr.pm";
28 master = true;
29 file = mkZone "sbr.pm" ./dns/sbr.pm.nix;
30 }
31 # home zone
32 {
33 name = "home";
34 master = true;
35 file = mkZone "home" ./dns/home.nix;
36 }
37 # home reverse zone
38 {
39 name = "192.168.1.in-addr.arpa";
40 master = true;
41 file = mkZone "192.168.1.in-addr.arpa" ./dns/192.168.1.nix;
42 }
43 # vpn zone
44 {
45 name = "vpn";
46 master = true;
47 file = mkZone "vpn" ./dns/vpn.nix;
48 }
49 # vpn reverse zone
50 {
51 name = "10.100.0.in-addr.arpa";
52 master = true;
53 file = mkZone "10.100.0.in-addr.arpa" ./dns/10.100.0.nix;
54 }
55 ];
56 };
57}