forked from lukas/nixos-config
58 lines
2.3 KiB
Nix
58 lines
2.3 KiB
Nix
{config, ...}:
|
|
{
|
|
services.adguardhome = {
|
|
enable = true;
|
|
# Keep DNS behavior reproducible and prevent stale UI settings from
|
|
# overriding the declared upstream resolvers.
|
|
mutableSettings = false;
|
|
port = 3007;
|
|
settings = {
|
|
|
|
http.address = "127.0.0.1";
|
|
http.port = 3007;
|
|
dns = {
|
|
bind_hosts = [ "0.0.0.0" ];
|
|
port = 53;
|
|
|
|
# Query independent providers in parallel so one unavailable upstream
|
|
# cannot break DNS for the complete Headscale network.
|
|
upstream_dns = [
|
|
"1.1.1.1"
|
|
"8.8.8.8"
|
|
];
|
|
upstream_mode = "parallel";
|
|
fallback_dns = [
|
|
"9.9.9.9"
|
|
];
|
|
|
|
# Bootstrap resolvers are IP addresses to avoid a DNS dependency loop.
|
|
bootstrap_dns = [
|
|
"1.1.1.1"
|
|
"8.8.8.8"
|
|
];
|
|
};
|
|
filtering = {
|
|
rewrites = [
|
|
{ domain = "desk.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "webhook.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "files.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
#{ domain = "git.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "dash.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "calendar.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
#fastpi
|
|
{ domain = "radio.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "navidrome.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "quantum.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "metadata.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "couchdb.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "jellyfin.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
{ domain = "obsidian.${config.domain}"; answer = config.tailnetIPs.blunix; enabled = true; }
|
|
];
|
|
filtering_enabled = true;
|
|
protection_enabled = true;
|
|
safe_search.enabled = true;
|
|
};
|
|
statistics.enabled = true;
|
|
};
|
|
};
|
|
}
|