86 lines
2.2 KiB
Nix
86 lines
2.2 KiB
Nix
{ config, lib, pkgs, ... }: {
|
|
|
|
options.sysconfig.opts.virtualization.pihole.enable = lib.options.mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
};
|
|
|
|
config = lib.mkIf config.sysconfig.opts.virtualization.pihole.enable {
|
|
|
|
sops.templates."pihole.env" = {
|
|
content = ''
|
|
WEBPASSWORD=${config.sops.placeholder."pihole/pass"}
|
|
'';
|
|
|
|
path = "/ssd1/Pihole/.env";
|
|
};
|
|
systemd.services.launchPihole = {
|
|
|
|
enable = true;
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
script = ''
|
|
cd /ssd1/Pihole
|
|
${pkgs.docker-compose}/bin/docker-compose up
|
|
'';
|
|
};
|
|
|
|
containers.unbound = {
|
|
|
|
autoStart = true;
|
|
privateNetwork = true;
|
|
hostAddress = "192.168.100.10";
|
|
localAddress = "192.168.100.15";
|
|
|
|
config = {
|
|
|
|
services.unbound = {
|
|
enable = true;
|
|
|
|
settings = {
|
|
server = {
|
|
interface = [ "127.0.0.1" ];
|
|
|
|
port = 5335;
|
|
|
|
do-ipv4 = "yes";
|
|
|
|
do-udp = "yes";
|
|
|
|
do-tcp = "yes";
|
|
|
|
do-ipv6 = "no";
|
|
|
|
perfer-ipv6 = "no";
|
|
|
|
harden-glue = "yes";
|
|
|
|
harden-dnssec-stripped = "yes";
|
|
|
|
use-caps-for-id = "no";
|
|
|
|
edns-buffer-size = 1232;
|
|
|
|
prefetch = "yes";
|
|
|
|
num-threads = 1;
|
|
|
|
so-rcvbuf = "1m";
|
|
|
|
private-address = [
|
|
"192.168.0.0/16"
|
|
"169.254.0.0/16"
|
|
"172.16.0.0/12"
|
|
"10.0.0.0/8"
|
|
"fd00::/8"
|
|
"fe80::/10"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|