powerdns-admin/README.md

89 lines
2.6 KiB
Markdown
Raw Normal View History

2015-12-13 10:46:24 +00:00
# PowerDNS-Admin
PowerDNS Web-GUI - Built by Flask
2015-12-13 11:07:10 +00:00
#### Features:
2015-12-13 11:07:59 +00:00
- Multiple domain management
2015-12-13 11:07:10 +00:00
- Local / LDAP user authentication
2016-06-16 09:02:34 +00:00
- Support Two-factor authentication (TOTP)
2015-12-13 11:07:10 +00:00
- User management
- User access management based on domain
2015-12-13 11:07:10 +00:00
- User activity logging
- Dashboard and pdns service statistics
- DynDNS 2 protocol support
2015-12-13 11:07:10 +00:00
2015-12-13 10:46:24 +00:00
## Setup
### PowerDNS Version Support:
PowerDNS-Admin supports PowerDNS autoritative server versions **3.4.2** and higher.
2015-12-13 10:46:24 +00:00
### pdns Service
I assume that you have already installed powerdns service. Make sure that your `/etc/pdns/pdns.conf` has these contents
PowerDNS 4.0.0 and later
```
api=yes
api-key=your-powerdns-api-key
webserver=yes
```
PowerDNS before 4.0.0
2015-12-13 10:46:24 +00:00
```
experimental-json-interface=yes
experimental-api-key=your-powerdns-api-key
webserver=yes
```
This will enable API access in PowerDNS so PowerDNS-Admin can intergrate with PowerDNS.
2015-12-13 10:46:24 +00:00
### Create Database
We will create a database which used by this web application. Please note that this database is difference from pdns database itself.
```
MariaDB [(none)]> CREATE DATABASE powerdnsadmin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON powerdnsadmin.* TO powerdnsadmin@'%' IDENTIFIED BY 'your-password';
2015-12-13 10:46:24 +00:00
```
### PowerDNS-Admin
In this installation guide, I am using CentOS 7 and run my python stuffs with *virtualenv*. If you don't have it, lets install it:
2015-12-13 10:46:24 +00:00
```
$ sudo yum install python-pip
$ sudo pip install virtualenv
```
In your python web app directory, create a `flask` directory via `virtualenv`
```
$ virtualenv flask
```
Enable virtualenv and install python 3rd libraries
```
$ source ./flask/bin/activate
(flask)$ pip install -r requirements.txt
```
Web application configuration is stored in `config.py` file. Let's clone it from `config_template.py` file and then edit it
```
(flask)$ cp config_template.py config.py
2015-12-13 10:46:24 +00:00
(flask)$ vim config.py
```
Create database after having proper configs
2015-12-13 11:10:10 +00:00
```
(flask)% ./create_db.py
2015-12-13 11:10:10 +00:00
```
2015-12-13 10:46:24 +00:00
Run the application and enjoy!
```
(flask)$ ./run.py
```
2015-12-13 10:58:26 +00:00
2016-05-14 01:42:39 +00:00
### Screenshots
![login page](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/images/readme_screenshots/fullscreen-login.png?raw=true)
![dashboard](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/images/readme_screenshots/fullscreen-dashboard.png?raw=true)
![create domain page](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/images/readme_screenshots/fullscreen-domaincreate.png?raw=true)
![manage domain page](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/images/readme_screenshots/fullscreen-domainmanage.png?raw=true)
2016-06-16 09:02:34 +00:00
![two-factor authentication config](https://cloud.githubusercontent.com/assets/6447444/16111111/467f2226-33db-11e6-926a-01b4d15035d2.png)
2016-05-14 01:42:39 +00:00