- PHP 64.8%
- HTML 16.7%
- JavaScript 11.5%
- Shell 3%
- CSS 2.9%
- Other 1%
| .devcontainer | ||
| .github | ||
| .phan | ||
| addons | ||
| assets | ||
| config | ||
| data | ||
| install | ||
| lib | ||
| locale | ||
| playwright | ||
| sql | ||
| templates | ||
| tests | ||
| vendor | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| .hadolint.yaml | ||
| .htaccess | ||
| .php-cs-fixer.php | ||
| .semgrepignore | ||
| caddy.conf.example | ||
| cliff.toml | ||
| composer.json | ||
| composer.lock | ||
| CONTRIBUTING.md | ||
| docker-entrypoint.sh | ||
| DOCKER-SECRETS.md | ||
| DOCKER.md | ||
| Dockerfile | ||
| dynamic_update.php | ||
| favicon.ico | ||
| index.php | ||
| LICENSE | ||
| nginx.conf.example | ||
| package.json | ||
| phpcs.xml | ||
| phpdoc.dist.xml | ||
| phpstan.neon | ||
| phpunit.xml.dist | ||
| playwright.config.js | ||
| psalm.xml | ||
| README.md | ||
| renovate.json | ||
| robots.txt | ||
| transifex.yml | ||
Poweradmin
Poweradmin is a friendly web-based DNS administration tool for PowerDNS server. The interface supports most of the features of PowerDNS. It can work directly against the PowerDNS database (with API-assisted DNSSEC) or run entirely through the PowerDNS API in API backend mode.
Features
- Supports all zone types (master, native, and slave)
- Supermasters for automatic provisioning of slave zones
- Zone templates for quick zone creation
- Bulk operations for records and reverse DNS
- Zone metadata editor for PowerDNS
domainmetadata, including multi-value metadata kinds - Native PowerDNS API backend mode - manage zones without direct access to the PowerDNS database
- Version-aware interface that adapts record types, metadata kinds, and terminology to the connected PowerDNS version
- IPv6 support
- Multi-language support (28 languages)
- DNSSEC operations via PowerDNS API
- Light and dark themes
- Search functionality across zones and records
- User and permission management with role-based access
- Ability to add reverse records
- Authentication options:
- Local database authentication
- LDAP authentication with custom filter
- SAML and OIDC authentication
- Multi-factor authentication (MFA/2FA) with TOTP
- RESTful API with OpenAPI documentation (used by Terraform/OpenTofu provider)
- Docker deployment with FrankenPHP
Screenshots
Login Screen
Dashboard
Zone Management
Zone Editor
Zone Metadata Editor
Poweradmin includes a zone metadata editor for PowerDNS domainmetadata. The editor supports:
- selecting known metadata kinds with inline guidance
- entering custom metadata kinds when needed
- multi-value metadata such as
ALLOW-AXFR-FROMusing one row per value
Installation
For detailed installation instructions, please visit the official documentation.
Traditional Installation
- Recommended method - via releases:
- Get the latest stable release from releases
- For specific needs - via Git:
- Warning: The master branch is used for development of the next major release and may be unstable. For production use, stick with the
release/4.3.xbranch or a specific version tag (e.g.v4.3.4), or use thestableDocker tag.
- Warning: The master branch is used for development of the next major release and may be unstable. For production use, stick with the
Docker Deployment
Quick Start with Docker:
docker run -d \
--name poweradmin \
-p 8080:80 \
-e DB_TYPE=sqlite \
-e PA_CREATE_ADMIN=1 \
poweradmin/poweradmin:latest
Important:
- DB_TYPE environment variable is required (sqlite, mysql, pgsql)
- No admin user is created by default for security reasons. Use
-e PA_CREATE_ADMIN=1to create an admin user (a secure password will be auto-generated and shown in logs)
- Docker Hub:
poweradmin/poweradmin - GitHub Container Registry:
ghcr.io/poweradmin/poweradmin - Full documentation: DOCKER.md
- Security with Docker Secrets: DOCKER-SECRETS.md
Features: Multi-database support (SQLite, MySQL, PostgreSQL), Docker secrets integration, FrankenPHP for enhanced performance.
Requirements
- PHP 8.2 or higher (including 8.3, 8.4, 8.5, etc.)
- PHP extensions: intl, gettext, openssl, filter, tokenizer, pdo, xml, pdo-mysql/pdo-pgsql/pdo-sqlite, ldap (optional)
- MySQL 5.7.x/8.x, MariaDB, PostgreSQL or SQLite database
- PowerDNS authoritative server 4.0.0+ (including 4.x and 5.x series)
Tested on
Officially tested versions:
- master (4.4.x): PHP 8.2, PowerDNS 4.9.12, MariaDB 10.11, PostgreSQL 16.11
- release/4.3.x (stable): PHP 8.2, PowerDNS 4.9.12, MariaDB 10.11, PostgreSQL 16.11
- release/4.2.x (maintenance): PHP 8.2, PowerDNS 4.9.12, MariaDB 10.11, PostgreSQL 16.11
- release/3.x (LTS): PHP 8.1, PowerDNS 4.7.4, MariaDB 10.11, MySQL 9.1, PostgreSQL 16.3, SQLite 3.45
User-reported compatibility:
- PowerDNS 4.8.x, 4.9.x, and 5.0.x series have been reported to work correctly by community users
Compatibility note: In the default SQL backend, Poweradmin operates primarily at the database level with PowerDNS, using the PowerDNS API for DNSSEC operations - the database schema stays relatively stable between PowerDNS releases, so compatibility is broad. In API backend mode, all operations go through the PowerDNS HTTP API instead. Since 4.4.0, the interface also detects the connected PowerDNS version and adjusts the available features accordingly.
Version Support
Poweradmin maintains multiple release branches:
| Branch | Status | Support |
|---|---|---|
develop |
Experimental | 4.5.x experimental features, may be unstable |
master |
Current release | 4.4.x releases - newest line, still hardening |
release/4.3.x |
Stable | Current stable line (recommended), patch releases and security updates |
release/4.2.x |
Maintenance | Security updates only, winding down |
release/4.1.x |
End of support | No further updates - upgrade to 4.3.x |
release/4.0.x |
End of support | No further updates - upgrade to 4.3.x |
release/3.x |
LTS | Bug fixes and security updates until December 2027 |
PHP Version Support
Important: Starting with version 4.2.x, the minimum required PHP version is 8.2. PHP 8.1 is no longer supported.
Long-Term Support (LTS)
The 3.9.x branch is designated as Long-Term Support (LTS), starting with version 3.9.8. This branch will receive bug fixes and security updates for at least two years, providing a stable option for organizations that prefer stability over immediate upgrades.
For more details, see the Poweradmin in 2025: Year in Review blog post.
Contributing
We welcome contributions to Poweradmin! As the sole maintainer of this non-profit project, I work alongside our amazing contributors. See CONTRIBUTING.md for guidelines.
Support the Project
Poweradmin is independently developed and maintained. Your support helps keep the project alive and growing.
JetBrains provides IDE licenses used for development of this project.
Organizations Supporting Development
|
HLkomm Telekommunikations GmbH |
IRAM |
stepping stone AG |
VISTEC Internet Service GmbH |
Individual Donors
- Stefano Rizzetto
- Asher Manangan
- Michiel Visser
- Gino Cremer
- Arthur Mayer
- Dylan Blanqué
- Tony Johnson
- Deeefje
- yBaca s.r.o.
For feature sponsorship, to speed up development of specific features, or to discuss ideas and issues, please contact me. Donations via invoice are also possible for organizations within the EU.
Related Projects
- terraform-provider-poweradmin - Terraform/OpenTofu provider for managing DNS zones and records through Poweradmin
- certbot-dns-poweradmin - Certbot DNS plugin for Poweradmin to automate Let's Encrypt certificate issuance with DNS-01 challenge
- external-dns-poweradmin-webhook - ExternalDNS webhook provider for Poweradmin to synchronize Kubernetes DNS records
- cert-manager-webhook-poweradmin - cert-manager webhook solver for Poweradmin to automate DNS-01 challenge validation
Community Projects
- poweradmin-cli - Command-line interface for managing zones, records, users and groups through the Poweradmin REST API
- poweradmin-go - Go SDK for the Poweradmin REST API
- poweradmin-operator - Kubernetes operator for managing DNS zones and records via the Poweradmin API
Note
Poweradmin is an independent community project, not affiliated with PowerDNS.com or Open-Xchange.
License
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.



