Poweradmin is a DNS administration tool for PowerDNS that can be driven through a friendly web UI, a REST API, or both at the same time. Use the UI for day-to-day operations, the API for scripts and infrastructure-as-code, or run completely headless after the initial setup - the same validation runs on every path. It can work directly against the PowerDNS database (with API-assisted DNSSEC) or run entirely through the PowerDNS API in API backend mode.
docker run -d --name poweradmin -p 8080:80 -e DB_TYPE=sqlite -e PA_CREATE_ADMIN=1 poweradmin/poweradmin:latest- All zone types (master, native, and slave), supermasters, and zone templates
- 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
- DNSSEC operations, plus a zone metadata editor for PowerDNS
domainmetadata - REST API with OpenAPI documentation, and API keys that can be made read-only, restricted to specific operations, or scoped to specific zones
- Bulk operations for records and reverse DNS, and secondary zone import over AXFR
- Record change log with before/after snapshots of every record and zone change
- Users, groups, and role-based permissions, with LDAP, SAML, OIDC, and TOTP two-factor authentication
- 43 languages including right-to-left, light and dark themes, and full IPv6 support
- Docker deployment with FrankenPHP
Poweradmin's REST API is wrapped by ready-made integrations, so zones can be managed from infrastructure tooling rather than a browser:
- terraform-provider-poweradmin - Terraform/OpenTofu provider for zones and records
- external-dns-poweradmin-webhook - ExternalDNS webhook provider for Kubernetes
- cert-manager-webhook-poweradmin - cert-manager solver for DNS-01 challenges
- certbot-dns-poweradmin - Certbot plugin for Let's Encrypt DNS-01 challenges
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
For detailed installation instructions, please visit the official documentation.
- 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
Quick Start with Docker:
docker run -d \
--name poweradmin \
-p 8080:80 \
-e DB_TYPE=sqlite \
-e PA_CREATE_ADMIN=1 \
poweradmin/poweradmin:latestImportant:
- 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)
Want to drive PowerDNS from scripts instead of a browser? Add -e PA_API_ENABLED=true -e PA_API_DOCS_ENABLED=true and follow the Headless / API-First Quickstart - zero to scripted record updates in about five minutes.
- Docker Hub:
poweradmin/poweradmin - GitHub Container Registry:
ghcr.io/poweradmin/poweradmin - Full documentation: DOCKER.md
- Security with Docker Secrets: Docker Secrets
Features: Multi-database support (SQLite, MySQL, PostgreSQL), Docker secrets integration, FrankenPHP for enhanced performance.
- 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)
Officially tested versions:
- release/4.4.x (current): 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.
Poweradmin maintains multiple release branches:
| Branch | Status | Support |
|---|---|---|
develop |
Experimental | 4.5.x experimental features, may be unstable |
master |
Next release | 4.5.0 development after the develop merge, may be unstable |
release/4.4.x |
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 |
Important: Starting with version 4.2.x, the minimum required PHP version is 8.2. PHP 8.1 is no longer supported.
Poweradmin tracks the official PHP release lifecycle. PHP versions that have reached end-of-life are dropped from the next Poweradmin release; security-only versions remain supported until then. See docs.poweradmin.org → Requirements for the current supported range.
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.
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.
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.
|
HLkomm Telekommunikations GmbH |
IRAM |
stepping stone AG |
VISTEC Internet Service GmbH |
- Stefano Rizzetto
- Asher Manangan
- Michiel Visser
- Gino Cremer
- Arthur Mayer
- Dylan Blanqué
- Tony Johnson
- Deeefje
- yBaca s.r.o.
- Stephan Gogler
For feature sponsorship, to speed up development of specific features, or to discuss ideas and issues, please contact me. Donations are accepted through GitHub Sponsors, Open Collective and PayPal. Companies can receive an invoice through Open Collective from anywhere, or directly for organizations within the EU.
- 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
Poweradmin is an independent community project, not affiliated with PowerDNS.com or Open-Xchange.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.



