{ config, lib, ... }: with lib; let cfg = config.walkah.coredns; in { options.walkah.coredns = { enable = mkEnableOption ""; addr = mkOption { type = types.str; default = "0.0.0.0"; example = "192.168.6.1"; }; }; config = mkIf cfg.enable { services.coredns = { enable = true; config = '' . { bind 127.0.0.1 bind ${cfg.addr} prometheus ${cfg.addr}:9153 log errors cache dnssec forward . tls://1.1.1.1 tls://1.0.0.1 { tls_servername cloudflare-dns.com } } walkah.lab { bind ${cfg.addr} file ${./walkah.lab.zone} } ''; }; networking = { nameservers = [ "127.0.0.1" ]; search = [ "walkah.lab" ]; }; }; }