Files
2026-07-18 16:17:19 -06:00

49 lines
1.1 KiB
Nix

{ config, pkgs, ... }:
{
networking.networkmanager.insertNameservers = [ "127.0.0.1" ];
systemd.tmpfiles.rules = [
"d /var/lib/pihole 0777 root root -"
"d /var/lib/pihole/etc 0777 root root -"
"d /var/lib/pihole/dnsmasq 0777 root root -"
];
# Explicitly set the OCI container backend to Podman
virtualisation.oci-containers.backend = "podman";
# Define the Pi-Hole container
virtualisation.oci-containers.containers.pihole = {
image = "docker.io/pihole/pihole:latest";
ports = [
"53:53/tcp" # DNS
"53:53/udp" # DNS
"8775:80/tcp" # Web UI
];
volumes = [
"/var/lib/pihole/etc:/etc/pihole"
"/var/lib/pihole/dnsmasq:/etc/dnsmasq.d"
];
environment = {
TZ = "America/Denver";
};
autoStart = true;
# Extra Podman arguments for additional capabilities Pi-Hole requires
extraOptions = [
"--cap-add=NET_ADMIN"
];
};
# Open the required ports in the NixOS firewall
networking.firewall = {
allowedTCPPorts = [ 53 80 ];
allowedUDPPorts = [ 53 ];
};
}