
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.
-
🧩 System Preparation
sudo dnf update -y sudo dnf install epel-release -y sudo dnf install wget curl unzip -y
-
🗄 Install and Configure MariaDB
Poweradmin requires a SQL backend.
-
Install MariaDB server
sudo dnf install mariadb-server mariadb -y sudo systemctl enable --now mariadb
-
Secure MariaDB
sudo mysql_secure_installation
Choose:
- Remove anonymous users: Y
- Disallow remote root login: Y
- Remove test DB: Y
- Reload privileges: Y
-
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
-
-
💿 Install PowerDNS Authoritative Server
-
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.
-
Install the server + MySQL backend
sudo dnf install pdns pdns-backend-mysql -y
-
-
📝 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.
-
🏗 Import PowerDNS Database Schema
mysql -u root -p powerdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql
-
🚀 Start and Enable PowerDNS
sudo systemctl enable --now pdns sudo systemctl status pdns
-
🌐 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
-
📦 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
-
⚙️ 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.)
-
🌐 Run Poweradmin Installer
Visit:
http://YOUR-SERVER-IP/poweradmin/install/

Poweradmin browser installation step 1 Provide:
-
Database Settings
- Host:
localhost - DB name:
powerdns - User:
pdns - Password:
STRONGPASSWORD
- Host:
-
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
-
-
🔒 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
-
🔥 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
-
🛡 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
-
🧪 Test PowerDNS Correct Operation
-
Check service:
systemctl status pdns
-
Query locally:
dig @127.0.0.1 yourdomain.com
-
-
⚙️ 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
-
📦 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
-
⚡ 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.






![Top 5 Best Free Vps Control Panel Alternatives Ranked For [Year] Image 9 Top 5 best free vps control panel alternatives ranked](https://blog.radwebhosting.com/wp-content/uploads/2023/12/top-5-best-free-vps-control-panel-alternatives-ranked-1200x628-1.png)


