A PowerDNS web interface with advanced features
Go to file
zoeller-freinet 0b2ad520b7 History table: relocate HTML for modal window (#1090)
- Store HTML for modal window inside an invisible <div> element instead
  of inside the <button> element's value attribute
- Mark history.detailed_msg as safe as it is already manually run
  through the template engine beforehand and would be broken if escaped
  a second time
2022-01-01 21:20:01 +01:00
.github chore: remove funding and sponsor badges (#1073) 2021-12-08 17:44:44 +01:00
configs default config: add exemplary URL encoding step for SQLA DB URL params 2021-11-30 22:29:00 +01:00
docker Remove unnecessary build step (#1003) 2021-10-30 21:29:23 +02:00
docker-test Fix #592 - Adjustment in Dockerfile to upgrade pip package 2019-12-07 14:45:41 +07:00
docs feat: Associate an API Key with accounts (#1044) 2021-12-03 14:12:11 +00:00
migrations feat: Associate an API Key with accounts (#1044) 2021-12-03 14:12:11 +00:00
powerdnsadmin History table: relocate HTML for modal window (#1090) 2022-01-01 21:20:01 +01:00
tests Extend api with account and user management 2020-01-27 14:04:15 +00:00
.dockerignore Update docker stuff and bug fixes 2019-12-04 11:50:46 +07:00
.gitattributes Add .gitattributes 2018-06-11 17:12:52 +07:00
.gitignore Update gitignore 2020-05-17 13:40:24 +07:00
.lgtm.yml Add .lgtm.yml 2018-08-31 21:58:11 +07:00
.whitesource Add .whitesource configuration file 2020-08-31 20:52:34 +00:00
.yarnrc Update docker stuff and bug fixes 2019-12-04 11:50:46 +07:00
docker-compose-test.yml Fix the tests 2019-12-06 10:59:19 +07:00
docker-compose.yml Offline installation and searchable inputs 2020-04-30 17:20:37 +00:00
LICENSE Change license information 2018-04-02 14:01:35 +07:00
package.json Datepicker replace (#1059) 2021-12-02 11:59:36 +01:00
README.md chore: remove funding and sponsor badges (#1073) 2021-12-08 17:44:44 +01:00
requirements.txt Bump python-ldap from 3.3.1 to 3.4.0 2021-12-17 12:08:19 +01:00
run.py Refactoring the code 2019-12-02 10:32:03 +07:00
update_accounts.py Domains should not be updated in update_accounts.py 2020-08-06 15:40:11 +02:00
update_zones.py Implement account update method 2020-08-06 15:22:28 +02:00
yarn.lock Bump elliptic from 6.5.3 to 6.5.4 (#896) 2021-03-16 19:41:46 +01:00

PowerDNS-Admin

A PowerDNS web interface with advanced features.

Language grade: Python Language grade: JavaScript

Features:

  • 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.

Docker

This 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 \
    ngoduykhanh/powerdns-admin:latest

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 (https://flask.palletsprojects.com/en/1.1.x/config/#SECRET_KEY)

  2. Start docker container

    $ docker-compose up
    

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

Screenshots

dashboard

LICENSE

MIT. See LICENSE