I don't know if this project is maintained any more. I prefer PDNS-Admin anyway.
Make sure to have PDNS up and running with a MySQL backend.
1. Install package dependancies.
apt install mariadb-server apache2 php7.4 php7.4-json php7.4-mysql php-apcu
PowerDNS and PDNS Manager will use the same database. If you setup the database here first, you won't have to do it when installing PowerDNS.
Login to MariaDB
mysql
Create a new database
CREATE DATABASE pdns;
Create a new user
CREATE USER 'pdns'@'%' IDENTIFIED BY '*********';
Grant permissions on the new database for the new user
GRANT ALL ON pdns.* TO 'pdns'@'%';
Flush privileges and exit
FLUSH PRIVILEGES;
exit
1. Download the latest stable version of PDNS Manager from the official download page.
wget https://dl.pdnsmanager.org/pdnsmanager-2.1.0.tar.gz
2. Unpack the archive to your desired location - I will be using /var/www/vhost
tar xzf pdnsmanager-2.1.0.tar.gz -C /var/www/vhost
3. Change the name of the extracted directory
mv /var/www/vhost/pdnsmanager-2.1.0/ /var/www/vhost/pdnsmanager/
You should now have complete paths to:
/var/www/vhost/pdnsmanager/frontend
/var/www/vhost/pdnsmanager/backend
4. Change the file permissions on the pdnsmanager directory, recursively.
chown www-data:www-data -R /var/www/vhost/pdnsmanager/
5. Create a new Apache vhost.
vim /etc/apache2/sites-available/pdns-manager.conf
Use this config - change your file paths as necessary.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName pdns.example.com
DocumentRoot /var/www/vhost/pdnsmanager/frontend
RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule !^/api/\.* /index.html [L]
Alias /api /var/www/vhost/pdnsmanager/backend/public
<Directory /var/www/vhost/pdnsmanager/backend/public>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
</Directory>
</VirtualHost>
6. Enable the new vhost.
a2dissite 000-default.conf
a2ensite pdns-manager.conf
a2enmod rewrite
systemctl restart apache2.service
7. Navigate to http://[server-ip-or-hostname]/setup
8. Populate the blank fields appropriately. Select ‘Setup’.
You'll need an existing record to point your SRV record to. I have mc.rlskeels.com
created above the new record for this example.
The Hostname section:
_minecraft.
- The application the record is for_tpc.
- The protocol to usemc
- The host that the SRV record is forThe Data/Content section:
10
is the Priority10
is the Weight25568
- Which port to usemc.rlskeels.com.
- The hostname to connect to