...
πŸš€ 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

Launch 100% ssd almalinux vps from $3. 19/mo!

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.
Launch 100% ssd almalinux vps from $3. 19/mo!

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