Files
Olympus/system-config/services/containers/pihole/default.nix
2025-08-01 14:16:29 -05:00

78 lines
2.1 KiB
Nix

{ config, lib, inputs, ... }: {
options.sysconfig.opts.virtualization.pihole.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
/*imports = [
"${inputs.nixpkgs-us}/nixos/modules/services/networking/pihole-ftl.nix"
"${inputs.nixpkgs-us}/nixos/modules/services/web-apps/pihole-web.nix"
"${inputs.nixpkgs-us}/nixos/modules/virtualisation/nixos-containers.nix"
];*/
/*disabledModules = [
"virtualisation/nixos-containers.nix"
];*/
config = lib.mkIf config.sysconfig.opts.virtualization.pihole.enable {
/* sops.secrets."pihole/pass" = {};
sops.templates."pihole.env" = {
content = ''
WEBPASSWORD=${config.sops.placeholder."pihole/pass"}
'';
path = "/ssd1/Pihole/.env";
};
*/
containers.pihole = {
autoStart = true;
privateNetwork = true;
hostAddress = "192.168.100.10";
localAddress = "192.168.100.28";
config = {
imports = [
"${inputs.nixpkgs-us}/nixos/modules/services/networking/pihole-ftl.nix"
"${inputs.nixpkgs-us}/nixos/modules/services/web-apps/pihole-web.nix"
];
services = let
pkgs-us = import inputs.nixpkgs-us { system = "x86_64-linux"; };
in {
pihole-web = {
enable = true;
package = pkgs-us.pihole-web;
ports = [ "80r" ];
};
pihole-ftl = {
enable = true;
package = pkgs-us.pihole-ftl;
openFirewallDNS = true;
};
unbound = {
enable = true;
};
};
networking.firewall.allowedTCPPorts = [ 80 ];
system.stateVersion = "24.05";
};
};
};
}