{ lib, pkgs, config, ... }: let cfg = config.skynet_dns; in { options = { skynet_dns = { enable = lib.mkEnableOption { default = false; example = true; description = "Skynet DNS"; type = lib.types.bool; }; records = { external = lib.mkOption { default = [ ]; type = lib.types.listOf lib.types.str; description = '' External records like: agentjones A 193.1.99.72 ''; }; cname = lib.mkOption { default = [ ]; type = lib.types.listOf lib.types.str; description = '' External records like: ns1 CNAME ns1 ''; }; }; }; }; config = lib.mkIf cfg.enable { services.bind = { enable = true; forwarders = [ # these were in old config file "193.1.100.130" "193.1.100.131" ]; /* put any other zones above skynet and link to their files like so: skynet.ie = { extraConfig = ""; file = ./dns/skynet; master = true; masters = []; slaves = [ ]; }; Skynet is handled a bit more dynamically since it is the key one we should focus on */ skynet.ie = { extraConfig = ""; file = ./dns/skynet; master = true; masters = []; slaves = [ ]; }; }; }; }