{ config, pkgs, lib, ... }:

{
  services = {
    dnsmasq = {
      enable = true;
      servers = [ "127.0.0.1#5300" ];
      extraConfig = ''
        localise-queries
        min-cache-ttl=120
        max-cache-ttl=2400
      '';
    };

    adguardhome = {
      enable = true;
      port = 3031;
    };

    dnscrypt-proxy2 = {
      enable = true;
      settings = {
        listen_addresses = [ "127.0.0.1:5353" ];
        ipv4_servers = true;
        ipv6_servers = false;
        block_ipv6 = true;
        dnscrypt_servers = true;
        doh_servers = true;
        require_nolog = true;
        require_nofilter = true;
        timeout = 350;
        lb_strategy = "p4";
        lb_estimator = true;
        ignore_system_dns = true;
        fallback_resolvers = [ "1.1.1.1:53" "9.9.9.9:53" ];
        cache_min_ttl = 450;
        cache_max_ttl = 2400;
      };
    };
  };
}