Pi-Hole: Difference between revisions
Appearance
| Line 4: | Line 4: | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
services.pihole-ftl = { | services.pihole-ftl = { | ||
enable = true; | |||
openFirewallDNS = true; # Open port 53 (DNS traffic) | |||
settings = { # See <https://docs.pi-hole.net/ftldns/configfile/> | |||
dns.upstreams = [ "9.9.9.9" "1.1.1.1" ]; # Use Quad9/Cloudflare's DNS Servers | |||
hosts = [ "192.168.1.188 some.domain" ]; # Optionally resolve local domains | |||
}; | |||
}; | |||
</syntaxhighlight> | |||
You can test it's working | |||
<syntaxhighlight> | |||
systemctl status pihole-ftl.service | |||
dig @localhost nixos.org | |||
</syntaxhighlight> | |||
Now, setting your routers DNS server to your IP will direct your traffic to the Pi-Hole. Blocked domains will not be resolved. | |||
== Adding lists == | |||
<syntaxhighlight lang="nix"> | |||
services.pihole-ftl = { | |||
lists = [ # Lists can be added via URL | |||
{ | |||
url = "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt"; | |||
type = "block"; | |||
enabled = true; | |||
description = "Sample blocklist by hagezi"; | |||
} | |||
]; | |||
}; | }; | ||
services.pihole-web = { # If lists are enabled then pihole-web must be configured | |||
enable = true; | |||
ports = [ "443s" ]; | |||
}; | |||
</syntaxhighlight> | |||
Now | Now you can access pihole web interface at https://localhost:443 | ||
Revision as of 12:09, 27 February 2026
Pi-Hole is a DNS service that functions as network ad-blocker.
Minimal Configuration Example
services.pihole-ftl = {
enable = true;
openFirewallDNS = true; # Open port 53 (DNS traffic)
settings = { # See <https://docs.pi-hole.net/ftldns/configfile/>
dns.upstreams = [ "9.9.9.9" "1.1.1.1" ]; # Use Quad9/Cloudflare's DNS Servers
hosts = [ "192.168.1.188 some.domain" ]; # Optionally resolve local domains
};
};
You can test it's working
systemctl status pihole-ftl.service
dig @localhost nixos.orgNow, setting your routers DNS server to your IP will direct your traffic to the Pi-Hole. Blocked domains will not be resolved.
Adding lists
services.pihole-ftl = {
lists = [ # Lists can be added via URL
{
url = "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt";
type = "block";
enabled = true;
description = "Sample blocklist by hagezi";
}
];
};
services.pihole-web = { # If lists are enabled then pihole-web must be configured
enable = true;
ports = [ "443s" ];
};
Now you can access pihole web interface at https://localhost:443