You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Matt Scott c5b9e24604
Merge pull request #1366 from Ssshafi/master
2 weeks ago
.github Added a GitHub labels configuration file. 2 months ago
configs Merge pull request #1212 from corubba/feature/privacy-first 2 weeks ago
deploy Create setup_win.bat 2 months ago
docker Use alpine 3.17 as base + pip fix to remove warnings 1 month ago
docker-test Fix #592 - Adjustment in Dockerfile to upgrade pip package 3 years ago
docs Linted the main menu. 2 months ago
migrations Upgrade Database: Changing domain table type column to 8 chars 4 weeks ago
powerdnsadmin Update login.html 2 weeks ago
tests Extend api with account and user management 3 years ago
.dockerignore Update docker stuff and bug fixes 3 years ago
.gitattributes Add .gitattributes 5 years ago
.gitignore Adding venv and yarn-error.log to gitignore 9 months ago
.lgtm.yml Add .lgtm.yml 5 years ago
.whitesource Add .whitesource configuration file 2 years ago
.yarnrc Update docker stuff and bug fixes 3 years ago
LICENSE Change license information 5 years ago Corrected typo / instructions related to Docker in the project README file. 2 months ago
docker-compose-test.yml Fix the tests 3 years ago
docker-compose.yml Merge pull request #1212 from corubba/feature/privacy-first 2 weeks ago
package.json Datepicker replace (#1059) 1 year ago
requirements.txt Revert "Removed mysqlclient requirement based on issue 1305. Wiki documentation has already been updated to reflect this change." 2 months ago Refactoring the code 3 years ago Domains should not be updated in 3 years ago Implement account update method 3 years ago
yarn.lock Bump shell-quote from 1.6.1 to 1.7.3 8 months ago


A PowerDNS web interface with advanced features.

CodeQL Docker Image


  • Multiple domain management
  • Domain template
  • User management
  • User access management based on domain
  • User activity logging
  • Support Local DB / SAML / LDAP / Active Directory user authentication
  • Support Google / Github / Azure / OpenID OAuth
  • Support Two-factor authentication (TOTP)
  • Dashboard and pdns service statistics
  • DynDNS 2 protocol support
  • Edit IPv6 PTRs using IPv6 addresses directly (no more editing of literal addresses!)
  • Limited API for manipulating zones and records
  • Full IDN/Punycode support

Running PowerDNS-Admin

There are several ways to run PowerDNS-Admin. The easiest way is to use Docker. If you are looking to install and run PowerDNS-Admin directly onto your system check out the Wiki for ways to do that.


Here are two options to run PowerDNS-Admin using Docker. To get started as quickly as possible, try option 1. If you want to make modifications to the configuration option 2 may be cleaner.

Option 1: From Docker Hub

The easiest is to just run the latest Docker image from Docker Hub:

$ docker run -d \
    -e SECRET_KEY='a-very-secret-key' \
    -v pda-data:/data \
    -p 9191:80 \

This creates a volume called pda-data to persist the SQLite database with the configuration.

Option 2: Using docker-compose

  1. Update the configuration
    Edit the docker-compose.yml file to update the database connection string in SQLALCHEMY_DATABASE_URI. Other environment variables are mentioned in the legal_envvars. To use the Docker secrets feature it is possible to append _FILE to the environment variables and point to a file with the values stored in it.
    Make sure to set the environment variable SECRET_KEY to a long random string (

  2. Start docker container

    $ docker-compose up

You can then access PowerDNS-Admin by pointing your browser to http://localhost:9191.