Poweradmin : Web UI untuk PowerDNS server
Prerequisite
- Saparate Machine untuk poweradmin (Optional)
Install Dependencies
Update repository:
apt update
Install PHP + Webserver-Nginx
apt install -y nginx php php-fpm php-pgsql php-mbstring php-xml php-curl php-intl gettext wget
Download Latest Release Poweradmin
Download Poweradmin
Cek versi latest di: https://github.com/poweradmin/poweradmin/releases
cd /tmp wget https://github.com/poweradmin/poweradmin/archive/refs/tags/v4.1.1.tar.gz
Extract dan pindahkan Files
tar -xzvf v4.1.1.tar.gz sudo mv poweradmin-4.1.1 /var/www/poweradmin sudo chown -R www-data:www-data /var/www/poweradmin sudo chmod -R 755 /var/www/poweradmin
Konfigurasi Postgres Database Allow Remote Connection (Optional)
Hanya jika poweradmin berada di machine yang berbeda
Edit postgresql.conf — Untuk allow listening pada all interfaces:
sudo nano /etc/postgresql/*/main/postgresql.conf
Ubah:
listen_addresses = 'localhost'
Ke:
listen_addresses = '*'
Edit pg_hba.conf — Untuk allow poweradmin host:
nano /etc/postgresql/*/main/pg_hba.con
Pada bagian kongigurasi host tambahkan line:
host powerdns pdns <poweradmin-ip>/32 md5 # Dapat dihapus nanti setelah init powerdns host powerdns poweradmin <poweradmin-ip>/32 md5
Ganti <poweradmin-ip> Dengan IP PowerDNS Server
Konfigurasi Webserver (Nginx)
Create Simple HTTP
sudo nano /etc/nginx/sites-available/poweradmin
server { listen 8081; server_name _; # your-domain.com or server IP root /var/www/poweradmin; index index.php index.html; access_log /var/log/nginx/poweradmin_access.log; error_log /var/log/nginx/poweradmin_error.log; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.2-fpm.sock; # adjust PHP version fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
Enable Nginx Sites
sudo ln -s /etc/nginx/sites-available/poweradmin /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
Run the Web Installer
Buka Installer pada browser http://your-server-ip:8081/install/
Setting Database connection
Powerdns perlu akses ke powerdns database dengan untuk mengenerate tables yang diperlukan, Berikan creds user/roles yang pdns yang kita buat sebelumnya. (Ini hanya diperlukan pada awal init poweradmin)
Setting Database user untuk poweradmin
Sekarang kita akan mengenerate user database untuk poweradmin. sesuaikan dengan user yang kita allow pada konfigurasi di atas.
Kita akan diberikan sql file untuk di jalankan pada powerdns server. Cukup jalankan ini saja pada powerdns server.
sudo -u postgres psql -d powerdns -c "CREATE USER poweradmin WITH PASSWORD 'poweradmin.fopens.net';;" sudo -u postgres psql -d powerdns -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO poweradmin;" sudo -u postgres psql -d powerdns -c "GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO poweradmin;"
Setting /config/setting.php
Setelah nya poweradmin akan memberikan setting.php yang dapat disalin di file webserver poweradmin
nano /var/www/poweradmin/config/settings.php
dan salin sesuai yang digenerate oleh installer poweradmin.
Delete file installer pada webserver
Selanjutnya adallah tinggal delete file installer pada webserver
rm /var/www/poweradmin/install/ -rf
Poweradmin