A PowerDNS web interface with advanced features
Go to file
Enrico Tröger eabbcedf08 Perform domain sync within a single transaction
This increases data inconsistency and also performance of the whole
update process: SqlAlchemy can use its own caching better with a single
transaction as it does not need to mark already fetched objects as dirty
and so re-fetch them again on later use. So after deleting a domain,
we can still use the previously fetched domain objects for the update
operations afterwards. Otherwise SqlAlchemy had to fetch each domain
object again with single SELECT statements which leads to bad
performance with many domains (>> 1000).

The introduced "do_commit" variable controls whether the database
changes are to be committed by the caller or in the called method
itself. So we can use a single transaction for the Domain.update()
method while still preserving the previous behavior for other callers.

Closes #428.
2020-02-02 15:15:20 +01:00
configs Add user email verification 2019-12-21 21:43:03 +07:00
docker fixes #619, improve sed replace regex 2019-12-20 17:22:51 +01:00
docker-test Fix #592 - Adjustment in Dockerfile to upgrade pip package 2019-12-07 14:45:41 +07:00
docs Resolve the conflicts and add adjustment to #591 2019-12-06 14:27:35 +07:00
migrations Fix migration script and user model 2019-12-22 08:40:05 +07:00
powerdnsadmin Perform domain sync within a single transaction 2020-02-02 15:15:20 +01:00
tests Update mock test 2019-12-18 23:48:46 +07: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 Show actual result on applyChanges(). Remove generated assets files 2019-12-11 13:45:27 +07:00
.lgtm.yml Add .lgtm.yml 2018-08-31 21:58:11 +07:00
.travis.yml Add Api to PowerDNS-Admin 2019-03-01 23:50:04 +01: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 Fix #592 - Adjustment in Dockerfile to upgrade pip package 2019-12-07 14:45:41 +07:00
LICENSE Change license information 2018-04-02 14:01:35 +07:00
package.json Add session timeout warning 2019-12-17 23:46:34 +07:00
README.md Update README and LGTM fixes 2019-12-08 18:23:36 +07:00
requirements.txt Add user email verification 2019-12-21 21:43:03 +07:00
run.py Refactoring the code 2019-12-02 10:32:03 +07:00
update_zones.py LGTM fixes. Remove unused import and variables 2019-12-07 20:20:40 +07:00
yarn.lock Add session timeout warning 2019-12-17 23:46:34 +07:00

PowerDNS-Admin

A PowerDNS web interface with advanced features.

Build Status 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

Running PowerDNS-Admin

There are several ways to run PowerDNS-Admin. Following is a simple way to start PowerDNS-Admin using Docker

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

Step 2: Start docker container

$ docker-compose up

You can now access PowerDNS-Admin at url http://localhost:9191

NOTE: For other methods to run PowerDNS-Admin, please take look at WIKI pages.

Screenshots

dashboard