---
title: Charmhub | Deploy Pi-hole using Charmhub - The Open Operator Collection
description: Deploy the latest version of Pi-hole on any cloud.
url: https://charmhub.io/pi-hole/configurations
---

# Pi-hole

[Jose Massón](https://charmhub.io/publisher/jose-masson "View all packages from Jose Massón")

* [Jose Massón](https://charmhub.io/publisher/jose-masson "View all packages from Jose Massón")

Platform:

26.04

stable 3

```
juju deploy pi-hole
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [blocking-enabled](https://charmhub.io/pi-hole/configurations#blocking-enabled)
* [dhcp-enabled](https://charmhub.io/pi-hole/configurations#dhcp-enabled)
* [dhcp-netmask](https://charmhub.io/pi-hole/configurations#dhcp-netmask)
* [dhcp-range-end](https://charmhub.io/pi-hole/configurations#dhcp-range-end)
* [dhcp-range-start](https://charmhub.io/pi-hole/configurations#dhcp-range-start)
* [dhcp-router](https://charmhub.io/pi-hole/configurations#dhcp-router)
* [dns-listening-mode](https://charmhub.io/pi-hole/configurations#dns-listening-mode)
* [dnssec-enabled](https://charmhub.io/pi-hole/configurations#dnssec-enabled)
* [gravity-schedule](https://charmhub.io/pi-hole/configurations#gravity-schedule)
* [ntp-server-enabled](https://charmhub.io/pi-hole/configurations#ntp-server-enabled)
* [upstream-dns](https://charmhub.io/pi-hole/configurations#upstream-dns)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* blocking-enabled | boolean

  Default: True

  Whether DNS-based ad blocking is active.
* dhcp-enabled | boolean

  Whether the FTL DHCP server on 67/udp is enabled. Requires a
  complete pool (dhcp-range-start, dhcp-range-end, dhcp-router,
  dhcp-netmask) and dns-listening-mode=ALL (the default LOCAL
  binds localhost only, so DHCP clients could not reach the
  resolver). The serving interface must have an address in the
  pool's subnet.
* dhcp-netmask | string

  DHCP subnet netmask, dotted-quad only (e.g. 255.255.255.0;
  prefix-length forms like 24 are rejected). Required when
  dhcp-enabled is true.
* dhcp-range-end | string

  DHCP pool end address (IPv4, e.g. 192.168.1.50). Required
  when dhcp-enabled is true.
* dhcp-range-start | string

  DHCP pool start address (IPv4, e.g. 192.168.1.10). Required
  when dhcp-enabled is true.
* dhcp-router | string

  DHCP router/gateway address (IPv4, e.g. 192.168.1.1).
  Required when dhcp-enabled is true.
* dns-listening-mode | string

  FTL listening mode: LOCAL (loopback only), ALL (every
  interface), or NONE (no DNS). Empty means the charm does not
  manage this setting.

  FTL's SINGLE and BIND are not offered: they need an interface
  to bind to, which this charm does not manage yet.
* dnssec-enabled | boolean

  Whether DNSSEC validation is enabled.
* gravity-schedule | string

  A systemd OnCalendar expression for the weekly gravity update
  timer (e.g. 'Sun *-*-\* 03:00'). Empty means the charm does not
  manage the schedule — the snap's randomised default applies.
  The charm writes a host systemd drop-in because the snap's
  configure hook rejects all timer keys.
* ntp-server-enabled | boolean

  Whether the FTL NTP server on 123/udp is enabled.
  The charm default is false, diverging from the snap's default
  of true. See the README.
* upstream-dns | string

  Comma-separated upstream DNS resolvers (e.g. 1.1.1.1,9.9.9.9).
  Empty means the charm does not manage upstreams.
