🚀 deploy poweradmin on almalinux vps
Learn how to deploy poweradmin on almalinux vps!

Below is a complete, production-ready, step-by-step guide for how to deploy Poweradmin on AlmaLinux VPS.

What is Poweradmin?

Poweradmin (PowerAdmin) is an open-source, web-based DNS management interface for PowerDNS.

What it does

PowerAdmin provides a graphical UI that allows administrators and users to manage DNS zones and records stored in a PowerDNS backend (typically MySQL or PostgreSQL) without using the command line.

Core features

  • Create, edit, and delete DNS zones
  • Manage DNS records (A, AAAA, MX, CNAME, TXT, SRV, NS, etc.)
  • User and permission management (admin vs regular users)
  • Zone templates for fast provisioning
  • Supports PowerDNS Authoritative Server
  • Works with MySQL or PostgreSQL backends
  • Lightweight PHP application (no daemon)

What it is not

  • ❌ Not a DNS server itself
  • ❌ Not a registrar or domain reseller
  • ❌ Not a full hosting control panel

PowerAdmin only manages DNS data that PowerDNS serves.

Typical use cases

  • Managing authoritative DNS for VPS and dedicated servers
  • Replacing manual BIND zone editing
  • Internal DNS management for infrastructure
  • Hosting providers (including multi-tenant DNS environments)
  • PowerDNS deployments behind an API or reverse proxy

Architecture overview

Browser
↓
PowerAdmin (PHP)
↓
MySQL / PostgreSQL (DNS records)
↓
PowerDNS Authoritative Server

Why people use PowerAdmin

  • Simple and fast compared to full control panels
  • Open-source and self-hosted
  • Direct database control over PowerDNS zones
  • Ideal companion to PowerDNS API setups

How to Deploy Poweradmin on AlmaLinux VPS

This guide covers:

  • Installing PowerDNS (Authoritative)
  • Configuring MariaDB backend
  • Setting up Poweradmin (web interface)
  • Securing with firewall + SELinux considerations
  • Optional: API, zone templates, DNSSEC, performance tuning

Works on AlmaLinux 8 & AlmaLinux 9.

  1. 🧩 System Preparation

    sudo dnf update -y sudo dnf install epel-release -y sudo dnf install wget curl unzip -y
  2. 🗄 Install and Configure MariaDB

    Poweradmin requires a SQL backend.

    1. Install MariaDB server

      sudo dnf install mariadb-server mariadb -y sudo systemctl enable --now mariadb
    2. Secure MariaDB

      sudo mysql_secure_installation
      

      Choose:

      • Remove anonymous users: Y
      • Disallow remote root login: Y
      • Remove test DB: Y
      • Reload privileges: Y
    3. Create PowerDNS database + user

      mysql -u root -p <<EOF CREATE DATABASE powerdns; CREATE USER 'pdns'@'localhost' IDENTIFIED BY 'STRONGPASSWORD'; GRANT ALL PRIVILEGES ON powerdns.* TO 'pdns'@'localhost'; FLUSH PRIVILEGES; EOF
  3. 💿 Install PowerDNS Authoritative Server

    1. Enable PowerDNS official repo

      sudo curl -o /etc/yum.repos.d/powerdns-auth-50.repo https://repo.powerdns.com/repo-files/el-auth-50.repo

      For AlmaLinux, CentOS repo works.

    2. Install the server + MySQL backend

      sudo dnf install pdns pdns-backend-mysql -y
  4. 📝 Configure PowerDNS to Use MariaDB Backend

    Edit the configuration file:

    sudo nano /etc/pdns/pdns.conf

    Add the following:

    launch=gmysql gmysql-host=127.0.0.1 gmysql-dbname=powerdns gmysql-user=pdns gmysql-password=STRONGPASSWORD api=yes api-key=YOURSUPERSECRETAPIKEY webserver=yes webserver-address=0.0.0.0 webserver-port=8081

    Save and exit.

  5. 🏗 Import PowerDNS Database Schema

    mysql -u root -p powerdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql
  6. 🚀 Start and Enable PowerDNS

    sudo systemctl enable --now pdns sudo systemctl status pdns
  7. 🌐 Install Web Server + PHP for Poweradmin

    Poweradmin requires Apache + PHP.

    dnf module reset php dnf module -y enable php:8.1 sudo dnf install httpd php php-mysqlnd php-gd php-xml php-mbstring php-json -y sudo systemctl enable --now httpd
  8. 📦 Download & Deploy Poweradmin

    cd /var/www/html sudo wget https://github.com/poweradmin/poweradmin/archive/refs/heads/master.zip sudo unzip master.zip sudo mv poweradmin-master poweradmin sudo rm -f master.zip

    Fix permissions:

    sudo chown -R apache:apache /var/www/html/poweradmin sudo chmod -R 755 /var/www/html/poweradmin
  9. ⚙️ Configure Poweradmin Installer

    Create config directory:

    sudo mkdir /var/www/html/poweradmin/inc sudo chmod 777 /var/www/html/poweradmin/inc

    (This will be secured after installation.)

  10. 🌐 Run Poweradmin Installer

    Visit:

    http://YOUR-SERVER-IP/poweradmin/install/
    
    How to deploy poweradmin on almalinux vps - poweradmin browser installation
    Poweradmin browser installation step 1

    Provide:

    • Database Settings

      • Host: localhost
      • DB name: powerdns
      • User: pdns
      • Password: STRONGPASSWORD
    • PowerDNS Settings

      • Hostmaster: your email
      • Primary nameserver: ns1.yourdomain.com
      • Secondary nameserver(s)
      • Add default zone templates: Yes
    • Admin Login Creation

      Choose username/password.

      After installation, Poweradmin creates:

      /var/www/html/poweradmin/inc/config.inc.php
  11. 🔒 Secure Poweradmin Paths

    Remove installer:

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

    Restrict permissions:

    sudo chmod 755 /var/www/html/poweradmin/inc sudo chmod 640 /var/www/html/poweradmin/inc/config.inc.php sudo chown apache:apache /var/www/html/poweradmin/inc/config.inc.php
  12. 🔥 Firewall Configuration

    Allow DNS + HTTP traffic:

    sudo firewall-cmd --add-service=dns --permanent sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload

    If API port needed:

    sudo firewall-cmd --add-port=8081/tcp --permanent sudo firewall-cmd --reload
  13. 🛡 SELinux Adjustments (If Enforcing)

    sudo setsebool -P httpd_can_network_connect 1 sudo chcon -t httpd_sys_rw_content_t /var/www/html/poweradmin/inc/ -R
  14. 🧪 Test PowerDNS Correct Operation

    1. Check service:

      systemctl status pdns
    2. Query locally:

      dig @127.0.0.1 yourdomain.com
  15. ⚙️ Optional: Enable DNSSEC

    In pdns.conf:

    gmysql-dnssec=yes

    Initialize:

    pdnsutil create-zone yourdomain.com pdnsutil secure-zone yourdomain.com pdnsutil show-zone yourdomain.com
  16. 📦 Optional: Enable Zone Templates in Poweradmin

    Inside Poweradmin interface:

    Admin → Zone Templates → Add

    Templates help automate:

    • A, AAAA, CNAME records
    • NS/SOA structure
    • Default TTLs
  17. ⚡ Optional: Performance Tuning for PowerDNS

    • Increase cache size

      cache-ttl=20 negquery-cache-ttl=60 max-cache-entries=2000000
    • Enable packet caching

      packetcache=yes packetcache-ttl=3600

      Restart:

      sudo systemctl restart pdns

🎉 Deployment Complete

You can now access the PowerDNS Administration Panel:

http://YOUR-SERVER-IP/poweradmin/

Use your admin login.

Conclusion

You now know how to deploy Poweradmin on AlmaLinux 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