PowerDNS-Admin/README.md

48 lines
2.6 KiB
Markdown
Raw Normal View History

2015-12-13 11:46:24 +01:00
# PowerDNS-Admin
2018-09-07 09:58:16 +02:00
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/ngoduykhanh/PowerDNS-Admin.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/ngoduykhanh/PowerDNS-Admin/context:python)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/ngoduykhanh/PowerDNS-Admin.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/ngoduykhanh/PowerDNS-Admin/context:javascript)
2015-12-13 11:46:24 +01:00
Wrapping up Docker overhaul. This consequently resulted in the configuration system getting some modifications as well. Here is a brief on the changes; - Added environment variable / setting key tracking files at powerdnsadmin/env/*.env that serve for automatic type conversion when loading app settings from environment variables. Also used for manual change tracking during project cleanup. - Updated the app config loading process to make use of a config utility that loads app config settings from environment variables replacing the legacy implementation - Cleaned up the configs directory files and moved the default configuration file from powerdnsadmin/default_config.py to configs/default.py. - Removed all current defaults from the default config file at configs/default.py as a move toward standardizing on Docker deployments for all environments - Started the migration of some legacy app settings / environment variables into the new PDA_ namespace. Added backwards compatibility to specific locations that were changed such as the main run.py file. - Overhauled some of the documentation, I specifically updated primary README.md file and also added docs/docker.md and docs/settings.md - Completely overhauled the Docker implementation to include two production ready images based on Alpine 3.14 and Debian 11.1-slim. - Separated Docker image templating files from deployment files within the docker directory. - Added Docker image building script at docker/bin/build-image and a release building script at docker/bin/create-release - Added shared Docker image asset files to docker/shared directory such as entrypoint script and auto-init database schemas - Docker container has option to automatically initialize chosen database on first run - Docker container has option to wait for MySQL server to be online before starting - Docker container has option to wait for PDNS API server authorization test to pass before starting - Docker container running Flask in development environment will automatically rebuild flask assets during startup if feature enabled - Docker container will automatically run Python test unit during startup if feature enabled - Dramatically improved the build effeciency, maintainability, and startup time of the Docker images
2021-12-08 09:52:06 +01:00
The PowerDNS-Admin is a simple web GUI for managing zone configurations of a PowerDNS Authoritative server.
The PowerDNS-Admin app does NOT modify the PowerDNS Authoritative server database directly. Instead, it communicates with the PDNS server via the built-in HTTP API.
The app does have a database for identity management, access control, and caching which can be hosted in either MySQL or SQLite.
- [PowerDNS-Admin GitHub](https://github.com/ngoduykhanh/PowerDNS-Admin)
- [PowerDNS-Admin Settings](https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/docs/settings.md)
- [PowerDNS-Admin Wiki](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki)
2015-12-13 12:07:10 +01:00
#### Features:
2015-12-13 12:07:59 +01:00
- Multiple domain management
2018-04-01 11:07:41 +02:00
- Domain template
2015-12-13 12:07:10 +01:00
- User management
- User access management based on domain
2015-12-13 12:07:10 +01:00
- User activity logging
- Support Local DB / SAML / LDAP / Active Directory user authentication
- Support Google / Github / Azure / OpenID OAuth
2018-04-01 11:07:41 +02:00
- Support Two-factor authentication (TOTP)
2015-12-13 12:07:10 +01:00
- Dashboard and pdns service statistics
- DynDNS 2 protocol support
2016-08-20 01:28:59 +02:00
- Edit IPv6 PTRs using IPv6 addresses directly (no more editing of literal addresses!)
2019-12-08 12:23:36 +01:00
- Limited API for manipulating zones and records
2021-03-16 19:37:05 +01:00
- Full IDN/Punycode support
2015-12-13 12:07:10 +01:00
Wrapping up Docker overhaul. This consequently resulted in the configuration system getting some modifications as well. Here is a brief on the changes; - Added environment variable / setting key tracking files at powerdnsadmin/env/*.env that serve for automatic type conversion when loading app settings from environment variables. Also used for manual change tracking during project cleanup. - Updated the app config loading process to make use of a config utility that loads app config settings from environment variables replacing the legacy implementation - Cleaned up the configs directory files and moved the default configuration file from powerdnsadmin/default_config.py to configs/default.py. - Removed all current defaults from the default config file at configs/default.py as a move toward standardizing on Docker deployments for all environments - Started the migration of some legacy app settings / environment variables into the new PDA_ namespace. Added backwards compatibility to specific locations that were changed such as the main run.py file. - Overhauled some of the documentation, I specifically updated primary README.md file and also added docs/docker.md and docs/settings.md - Completely overhauled the Docker implementation to include two production ready images based on Alpine 3.14 and Debian 11.1-slim. - Separated Docker image templating files from deployment files within the docker directory. - Added Docker image building script at docker/bin/build-image and a release building script at docker/bin/create-release - Added shared Docker image asset files to docker/shared directory such as entrypoint script and auto-init database schemas - Docker container has option to automatically initialize chosen database on first run - Docker container has option to wait for MySQL server to be online before starting - Docker container has option to wait for PDNS API server authorization test to pass before starting - Docker container running Flask in development environment will automatically rebuild flask assets during startup if feature enabled - Docker container will automatically run Python test unit during startup if feature enabled - Dramatically improved the build effeciency, maintainability, and startup time of the Docker images
2021-12-08 09:52:06 +01:00
## Deploying PowerDNS-Admin
There are multiple ways to run the PowerDNS-Admin app. The recommended method is to use the official [Docker images](https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/docs/docker.md).
If you would like to run PowerDNS-Admin directly on your machine or VM, check out the [Wiki](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki#installation-guides) for additional information.
Once you have deployed the app through one of the supported methods, You should be able to access the PowerDNS-Admin app by pointing your browser to http://localhost:8080.
## Configuring PowerDNS-Admin
The app has a plethora of settings that may be configured through a number of methods. Check out the settings documentation [here](https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/docs/settings.md).
## Screenshots
2018-08-14 04:36:26 +02:00
![dashboard](https://user-images.githubusercontent.com/6447444/44068603-0d2d81f6-9fa5-11e8-83af-14e2ad79e370.png)
2020-05-17 09:37:15 +02:00
## LICENSE
MIT. See [LICENSE](https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/LICENSE)