Skip to content

terraform-pihole-management

Terraform/OpenTofu modules for managing Pi-hole v6 as code using the dklesev/pihole provider.

GitHub

Modules

Module Description
groups Manage Pi-hole groups
dns DNS settings, upstream servers, local A/CNAME records
domains Allow/deny domain lists
lists Adlist and allowlist subscriptions
dhcp DHCP server settings and static leases
privacy Privacy level and database settings
webserver Web interface and API settings

Requirements

Name Version
Terraform / OpenTofu >= 1.0
dklesev/pihole ~> 1.0

Provider Configuration

hcl provider "pihole" { url = "https://pihole.example.com" password = var.pihole_password }

Example

```hcl module "groups" { source = "AutomationDojo/management/pihole//modules/groups" version = "1.0.6"

groups = { Default = { enabled = true, description = "The default group" } } }

module "dns" { source = "AutomationDojo/management/pihole//modules/dns" version = "1.0.6"

upstream_servers = ["8.8.8.8", "8.8.4.4", "1.1.1.1", "1.0.0.1"]

dns_settings = { domain_name = "lan" bogus_priv = true listening_mode = "ALL" } }

module "lists" { source = "AutomationDojo/management/pihole//modules/lists" version = "1.0.6"

default_groups = [0]

lists = { stevenblack = { address = "https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts" type = "block" } } } ```