40 lines
734 B
Nix
40 lines
734 B
Nix
{ config
|
|
, lib
|
|
, ...
|
|
}:
|
|
with lib; let
|
|
cfg = config.eboskma.adguard;
|
|
in
|
|
{
|
|
options.eboskma.adguard = {
|
|
upstreams = mkOption {
|
|
description = "Upstream DNS servers";
|
|
type = types.listOf types.str;
|
|
example = [
|
|
"http://1.1.1.1"
|
|
"tls://1.1.1.1"
|
|
"1.1.1.1"
|
|
];
|
|
};
|
|
};
|
|
|
|
config = {
|
|
services.adguardhome = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
|
|
settings = {
|
|
dns = {
|
|
upstream_dns = cfg.upstreams;
|
|
};
|
|
};
|
|
};
|
|
|
|
# This is necessary to bind a raw socket for DHCP
|
|
systemd.services.adguardhome.serviceConfig.AmbientCapabilities = [ "CAP_NET_RAW" ];
|
|
|
|
networking.firewall = {
|
|
allowedUDPPorts = [ 53 67 ];
|
|
};
|
|
};
|
|
}
|