🚀 deploy poweradmin to manage powerdns on ubuntu vps
Learn how to deploy poweradmin to manage powerdns on ubuntu vps servers!

This article demonstrates how to deploy Poweradmin to manage PowerDNS on Ubuntu VPS server.

What is Poweradmin?

Poweradmin is a free, open-source web-based control panel for managing DNS zones and records on a PowerDNS server.
Key attributes:

  • Works with PowerDNS’s SQL-backed setup (zones stored in a database) rather than purely text-zone files.
  • Licensed under the GNU General Public License version 3 (GPLv3).
  • Written in PHP and designed for administrators who want a GUI for DNS management rather than editing zone files manually.

Core features

Here are the main capabilities of Poweradmin:

  • Support for different zone types: master, native, and slave zones.
  • IPv6 support (not just IPv4).
  • Multi-language interface (translations available).
  • Ability to handle reverse DNS records (PTR) and DNSSEC operations.
  • LDAP authentication support (so you can integrate with directory services).
  • CRUD (create, read, update, delete) operations for zones and records via web browser rather than command line or raw zone‐file editing.

Typical use-cases

  • A web hosting company or ISP using PowerDNS for authoritative DNS and wanting a simpler GUI for their staff or clients.
  • An enterprise internal DNS setup where non‐DNS-expert staff need to add or update records without shell access.
  • Environments where ease of administration and reducing errors (via a GUI) are more important than only command-line operation.

System requirements & architecture

Poweradmin requires:

  • A PowerDNS server configured with a suitable backend (MySQL, PostgreSQL, etc.) since it interacts with DNS data stored in a database.
  • A web server (Apache, Nginx) and PHP environment (for the PHP version).
  • Database connection access to the PowerDNS backend (or appropriate API) so it can read/write zone/record data.
  • Optionally, when used with the PowerDNS API (for advanced features like DNSSEC, etc) the API must be enabled on the PowerDNS side.

Limitations & things to check

  • Since it’s a GUI, for very large / complex DNS infrastructures you’ll want to verify scalability and performance (especially large numbers of zones & records).
  • Because it integrates with the DNS backend via SQL or API, security is important: ensure the web interface is secured (HTTPS, strong passwords, proper access controls).
  • The project has been around a while; check activity and compatibility with the version of PowerDNS and backend databases you are using.
  • It is independent of the core PowerDNS project — a disclaimer in the documentation says it “is not associated with PowerDNS.com … or any other external parties.”

Why use it

  • Speeds up DNS administration tasks (adding zones/records) compared to editing zone files and re-loading the DNS server.
  • Reduces risk of syntax errors that occur when manually editing zone files.
  • Makes DNS management more accessible to non-DNS specialists via a friendly UI.
  • Helps in environments with delegated administration: you can give certain users limited access to only certain zones.

Launch 100% ssd ubuntu vps from $2. 49/mo!

🧭 How to Deploy Poweradmin to Manage PowerDNS on Ubuntu VPS

This guide is tailored for Ubuntu 22.04 LTS (Jammy) on a VPS with root or sudo privileges.

It sets up PowerDNS (authoritative) with a MariaDB backend and Poweradmin web interface secured via HTTPS.

  1. 🔧 System Preparation

    1. Update and install essentials

      sudo apt update && sudo apt upgrade -y sudo apt install curl wget vim git unzip ufw -y
    2. Enable firewall

      Allow only SSH + HTTP/HTTPS for web access:

      sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
  2. 🗃️ Install and Configure MariaDB

    sudo apt install mariadb-server -y
    sudo systemctl enable --now mariadb
    sudo mysql_secure_installation
    

    When prompted, set a strong root password and remove anonymous/test users.

    • Create PowerDNS database and user

      sudo mysql -u root -p

      Then run:

      CREATE DATABASE powerdns; CREATE USER 'pdns'@'localhost' IDENTIFIED BY 'StrongPass123!'; GRANT ALL ON powerdns.* TO 'pdns'@'localhost'; FLUSH PRIVILEGES; EXIT;
  3. 🌀 Install PowerDNS with MySQL Backend

    sudo apt install pdns-server pdns-backend-mysql -y
    
    • Configure PowerDNS to use MariaDB backend

      Create file:

      sudo nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf

      Add:

      launch+=gmysql gmysql-host=127.0.0.1 gmysql-dbname=powerdns gmysql-user=pdns gmysql-password=StrongPass123! gmysql-dnssec=yes
    • Import schema

      sudo mysql -u root -p powerdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

      Restart and enable PowerDNS:

      sudo systemctl restart pdns sudo systemctl enable pdns sudo systemctl status pdns
  4. 🧩 Enable PowerDNS API (for PowerAdmin)

    Edit main config:

    sudo nano /etc/powerdns/pdns.conf

    Add/ensure:

    api=yes api-key=SuperSecretAPIKey! webserver=yes webserver-address=127.0.0.1 webserver-port=8081

    Restart service:

    sudo systemctl restart pdns
  5. 🌐 Install Apache + PHP

    Poweradmin is a PHP web app. Install:

    sudo apt install apache2 libapache2-mod-php php php-mysql php-gd php-intl php-xml php-curl php-gettext -y sudo systemctl enable --now apache2
  6. 🧰 Install Poweradmin

    1. Download and extract

      cd /var/www/html sudo wget https://sourceforge.net/projects/poweradmin/files/poweradmin-2.1.9.tgz sudo tar xvf poweradmin-2.1.9.tgz sudo mv poweradmin-2.1.9 poweradmin sudo chown -R www-data:www-data /var/www/html/poweradmin
    2. Visit installer

      In your browser:

      http://YOUR_SERVER_IP/poweradmin/install/
      

      Fill the form:

      • Database type: MySQL
      • DB name: powerdns
      • DB user: pdns
      • Password: StrongPass123!
      • Host: localhost
      • PowerDNS host: localhost
      • API key: SuperSecretAPIKey!

      Finish installation → it will generate /var/www/html/poweradmin/inc/config.inc.php.

  7. 🔒 Secure Poweradmin

    After installation:

    sudo rm -rf /var/www/html/poweradmin/install

    Then set permissions:

    sudo chown -R www-data:www-data /var/www/html/poweradmin sudo chmod -R 755 /var/www/html/poweradmin
  8. 🔐 Enable HTTPS with Let’s Encrypt

    Install Certbot:

    sudo apt install certbot python3-certbot-apache -y

    Issue certificate:

    sudo certbot --apache -d yourdomain.com -m you@example.com --agree-tos --redirect

    Automatically renew:

    sudo systemctl enable certbot.timer
  9. 🧱 Verify and Test

    Check services:

    sudo systemctl status pdns sudo systemctl status apache2 sudo ss -tulpn | grep ':53\|:80\|:443'

    From your browser, go to:

    https://yourdomain.com/poweradmin/

    Log in → Create your first DNS zone (e.g., example.com) → Add A, MX, CNAME, TXT records.

    Verify via:

    dig example.com @127.0.0.1
  10. 🛡️ Firewall & Security Hardening

    sudo ufw allow 53/tcp sudo ufw allow 53/udp sudo ufw reload

    Optional: restrict PowerDNS API port:

    sudo ufw deny 8081 sudo ufw allow from 127.0.0.1 to any port 8081

🧩 Optional Enhancements

  • Enable DNSSEC
    In /etc/powerdns/pdns.d/pdns.local.gmysql.conf ensure gmysql-dnssec=yes.
    Poweradmin supports enabling DNSSEC in zone settings.
  • Remote Poweradmin
    If Poweradmin runs on a different VPS, adjust:

    gmysql-host=IP_OF_DB_SERVER webserver-address=0.0.0.0 webserver-allow-from=PowerAdmin_IP

    Then allow port 8081 in firewall.

  • Backups
    mysqldump -u root -p powerdns > /root/pdns-backup.sql

✅ Final Result

You now have:

  • PowerDNS authoritative nameserver using MariaDB backend
  • Poweradmin web UI over HTTPS for zone management
  • Secure firewall and API configuration

You can now easily manage domains, add/edit DNS records, and enable DNSSEC—all via browser.
Launch 100% ssd ubuntu vps from $2. 49/mo!

Conclusion

You now know how to deploy Poweradmin to manage PowerDNS on Ubuntu VPS.

Avatar of editorial staff

Editorial Staff

Rad Web Hosting is a leading provider of web hosting, Cloud VPS, and Dedicated Servers in Dallas, TX.
lg