A PowerDNS web interface with advanced features
Go to file
Thomas M Steenholdt 6c8a3ac36c Move setting definitions into code (rather than database).
For a setting to be useful, the code has to be able to make sense of it anyway. For this reason it makes sense, that the available settings are defined within the code, rather than in the database, where a missing row has previously caused problems. Instead, settings are now written to the database, when they are changed.

So instead of relying on the database initialization process to create all available settings for us in the database, the supported settings and their defaults are now in a `defaults` dict in the Setting class. With this in place, we can stop populating the `setting` table as a part of database initialization and it will be much easier to support new settings in the future (we no longer need to do anything to the database, to achieve that).

Another benefit is that any changes to default values will take effect automatically, unless the admin has already modified that setting to his/her liking.

To make it easier to get the value of a setting, falling back to defaults etc, a new function `get` has been added to the Setting class. Call it as `Setting().get('setting_name'), and it will take care of returning a setting from the database or return the default value for that setting, if nothing was found.

The `get` function returns `None`, if the setting passed to the function, does not exist in the `Setting.defaults` dict - Indicating that we don't know of a setting by that name.
2018-06-21 22:06:38 -02:00
app Move setting definitions into code (rather than database). 2018-06-21 22:06:38 -02:00
configs Add BG_DOMAIN_UPDATES config for docker development env 2018-06-11 17:02:01 +07:00
docker/PowerDNS-Admin Merge changes from master, PR #280 and resolve conflicts 2018-06-13 11:05:53 +07:00
upload/avatar Adjustment in user_profile template. Add avatar uploading support 2015-12-17 00:50:28 +07:00
.env Use .env file for docker-compose 2018-04-17 22:14:03 +07:00
.gitattributes Add .gitattributes 2018-06-11 17:12:52 +07:00
.gitignore Merge changes from master, PR #280 and resolve conflicts 2018-06-13 11:05:53 +07:00
.travis.yml Resolve the conflicts for #228 2018-04-02 13:38:53 +07:00
.yarnrc Add yarn support 2018-06-11 12:57:09 +02:00
config_template.py Update sqlite db file path in config template 2018-06-13 09:55:57 +07:00
docker-compose.yml Adjustment in Docker stuff to work with new migration. Add init_data.py script to initialize table data 2018-06-11 14:12:04 +07:00
init_data.py Move setting definitions into code (rather than database). 2018-06-21 22:06:38 -02:00
LICENSE Change license information 2018-04-02 14:01:35 +07:00
package.json Add yarn support 2018-06-11 12:57:09 +02:00
README.md Update README.md 2018-04-18 10:34:46 +07:00
requirements.txt Merge changes from master, PR #280 and resolve conflicts 2018-06-13 11:05:53 +07:00
run_travis.sh added basic travis script 2017-11-02 02:15:33 +01:00
run.py Resolve the conflicts for #228 2018-04-02 13:38:53 +07:00
supervisord.conf Adjustment to work with Python3 2018-03-30 13:49:35 +07:00
yarn.lock Add yarn support 2018-06-11 12:57:09 +02:00

PowerDNS-Admin

A PowerDNS web interface with advanced features. Build Status

Features:

  • Multiple domain management
  • Domain template
  • User management
  • User access management based on domain
  • User activity logging
  • Local DB / LDAP / Active Directory user authentication
  • Support SAML authentication
  • Google oauth authentication
  • Github oauth authentication
  • 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!)

Running PowerDNS-Admin

There are several ways to run PowerDNS-Admin. Following is a simple way to start PowerDNS-Admin with docker in development environment which has PowerDNS-Admin, PowerDNS server and MySQL Back-End Database.

Step 1: Changing configuration The configuration file for developement environment is located at configs/development.py, you can override some configs by editing .env file.

Step 2: Build docker images

$ docker-compose build

Step 3: Start docker containers

$ 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

login page dashboard create domain page manage domain page two-factor authentication config