Chat Zalo Chat Messenger Phone Number Đăng nhập
PowerDNS Authoritative, PowerDNS Recursor, dnsdist - GitHub

PowerDNS Authoritative, PowerDNS Recursor, dnsdist – GitHub

PowerDNS is copyright © 2001-2023 by PowerDNS.COM BV and many contributors, using the GNU GPLv2 license (see NOTICE for exact license and exception used).

All documentation can be found at

This file can be delayed at times. For the latest updates, always check

Another good place to look for information is:

To archive errors, go to:

But check if the problem was already reported there first.


This README file is mirrored from GitHub to dockerhub. For information about our Docker images, see

Git source/source code

is available on GitHub:

This repository contains the sources for PowerDNS Resourcer, PowerDNS Authoritative Server, and dnsdist (a powerful DNS load balancer). All three can be built from this repository. However, all three were released separately as .tar.bz2, .deb, and .rpm.

Different versions can be built with the help of pdns-builder, which uses a docker-based build process. To get started with this, run these commands at the root of this repository


This will open a USE page explaining how to build the different versions


BUILD Authoritative


The PowerDNS authoritative server depends on Boost, OpenSSL, and Lua, and requires a C++-2017-compliant compiler


In Debian 9

, the following is useful: When compiling from git, the following packages

are also required

: For

Ubuntu 18.04 (Bionic Beaver), the following packages must be installed


Next, generate the configuration file


To build a very clean version, use:

This generates a PowerDNS Authoritative Server binary with no built-in modules


See for a list of available modules.

When ./configure runs without -with-modules, the bind module and gmysql are integrated by default and the pipeline backend is compiled for runtime loading.

To add multiple modules, try:

Note that you will also need the development headers for PostgreSQL in this case

. See for details


If you have problems with C++11-related symbols, try passing CPPFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 (or 1) to ./configure to ensure that it supports the installed dependencies.

Compiling the recursor

See in pdns/



Compiling dnsdist

View in pdns/



the HTML documentation

HTML documentation (as seen on the PowerDNS document site) is created from restructured text (rst) files located in documents. They are compiled into HTML files using Sphinx, a documentation generating tool that is built in Python.

Install the dependencies in “COMPILING” and run autoreconf if you haven’t already:

Enter the docs folder and use make to compile the HTML documents


HTML documentation will now be available in html-docs


FreeBSD Notes

You need to compile using gmake: regular make only seems to work, but in fact it doesn’t work. Use gmake, not make.

The clang compiler installed through the FreeBSD package manager does not expose all the necessary C++17 features under the default value std=gnuc++14. Force the compiler to use std=c++17 mode instead.

macOS Notes

PowerDNS Authoritative Server is available through


if you want to build yourself, dependencies can be installed with Homebrew. You must also tell configure where to find OpenSSL.

Also, for PostgreSQL support, run brew install postgresql and add -with-modules=”gpgsql” to ./configure. For MySQL support, run brew install mariadb and add -with-modules=”gmysql” to ./configure.

Linux Notes

None really.

Contact US