Jump to content

Pi-Hole: Difference between revisions

From Official NixOS Wiki
J7 (talk | contribs)
No edit summary
J7 (talk | contribs)
typos
 
Line 17: Line 17:
</syntaxhighlight>
</syntaxhighlight>


You can test if it's working
Test if it's working


<syntaxhighlight>
<syntaxhighlight>
Line 55: Line 55:
</syntaxhighlight>
</syntaxhighlight>
Test pihole web interface at https://localhost:443
Test pihole web interface at https://localhost:443
Now you can set your router's DNS server to the IP of the host running pihole and blocked domains should not be resolved.
Now you can set your router's DNS server to the IP of the host running pihole and blocked domains should not be resolved.

Latest revision as of 20:18, 27 February 2026

Pi-Hole is a DNS service that functions as network ad-blocker.

Minimal Configuration Example

services.pihole-ftl = {
  enable = true;
  settings = {
    # See <https://docs.pi-hole.net/ftldns/configfile/>

    # External DNS Servers quad9 and cloudflare
    dns.upstreams = [ "9.9.9.9" "1.1.1.1" ];

    # Optionally resolve local hosts (domain is optional)
    dns.hosts = [ "192.168.1.188 hostname.domain" ];
  };
};

Test if it's working

$ systemctl status pihole-ftl.service
$ nslookup nixos.org localhost
$ nslookup hostname.domain localhost

Adding lists and enabling web interface

services.pihole-ftl = {
  enable = true;
  settings = {
    # See <https://docs.pi-hole.net/ftldns/configfile/>

    # External DNS Servers quad9 and cloudflare
    dns.upstreams = [ "9.9.9.9" "1.1.1.1" ];

    # Optionally resolve local hosts (domain is optional)
    dns.hosts = [ "192.168.1.188 hostname.domain" ];
  };

  lists = [    # Lists can be added via URL
    {
      url = "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt";
      type = "block";
      enabled = true;
      description = "hagezi blocklist";
    }
  ];
};

services.pihole-web = {
  enable = true;
  ports = [ "443s" ];
};

Test pihole web interface at https://localhost:443

Now you can set your router's DNS server to the IP of the host running pihole and blocked domains should not be resolved.