Installation

ZoneControl is a Python Django application and is typically installed through our official Ansible packages.

PowerDNS will provide an Ansible role to install ZoneControl and set up an initial user. This role comes with a README file that describes all variables for the role.

Manual Installation

To install ZoneControl without access to professional services or an Ansible role, configure your package manager with the relevant repository URL and credentials provided with your valid license/subscription:

Note

All instances of zonecontrol-18 appearing in the examples below refer to the 1.8.* version train. Other minor and major versions will have different repo names.

RHEL, CentOS, and Derivatives

Create the repository file /etc/yum.repos.d/powerdns-zonecontrol.repo, substituting <REPO_ID>, <USERNAME>, and <PASSWORD> with the values supplied with your subscription:

[zonecontrol-18]
name=PowerDNS ZoneControl
baseurl=https://repo-private.powerdns.com/<REPO_ID>/$basearch/$releasever/zonecontrol-18
gpgkey=https://repo-private.powerdns.com/792BEDEFA9256188C33742D9F507A8D0C15B9053-pub.asc
gpgcheck=1
enabled=1
includepkgs=zonecontrol*

username=<USERNAME>
password=<PASSWORD>

Then, install the ZoneControl package:

$ sudo dnf install zonecontrol

Replace dnf with yum in the above example if applicable.

Debian and Ubuntu

Import the repository signing key:

$ curl https://repo-private.powerdns.com/792BEDEFA9256188C33742D9F507A8D0C15B9053-pub.asc \
  | sudo tee /etc/apt/trusted.gpg.d/powerdns-zonecontrol.asc > /dev/null

Store your credentials in /etc/apt/auth.conf.d/powerdns.conf:

machine repo-private.powerdns.com login <USERNAME> password <PASSWORD>

Add the repository, replacing <DIST> with your distribution codename + distribution name (for example noble-ubuntu for Ubuntu 24.04 or bookworm-debian for Debian 12):

$ echo "deb [arch=amd64] https://repo-private.powerdns.com/<REPO_ID>/debian <DIST>-zonecontrol-18 main" \
  | sudo tee /etc/apt/sources.list.d/powerdns-zonecontrol.list

Then, update the package index and install the package:

$ sudo apt-get update
$ sudo apt-get install zonecontrol

Post-installation

After the initial installation, ZoneControl needs to be configured. See the Configuration section on how to configure.

After configuration, the database needs to be populated, run:

$ zonecontrol-manage migrate

Now create a superuser (if required):

$ zonecontrol-manage createsuperuser