{{indexmenu_n>020}}
====== Poweradmin : Web UI untuk PowerDNS server ======
==== Prerequisite ====
* **[[install-postgres| PowerDNS Server]]**
* 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 /32 md5 # Dapat dihapus nanti setelah init powerdns
host powerdns poweradmin /32 md5
Ganti 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/ ===
{{ :deployment:network:powerdns:padmin1.png?nolink |}}
=== 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)
{{ :deployment:network:powerdns:padmin-database.png?nolink |}}
=== Setting Database user untuk poweradmin ===
Sekarang kita akan mengenerate user database untuk poweradmin. sesuaikan dengan user yang kita allow pada konfigurasi di atas.
{{ :deployment:network:powerdns:padmin-database2.png?nolink&600 |}}
{{ :deployment:network:powerdns:padmin-database3.png?nolink&600 |}}
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
{{ :deployment:network:powerdns:padmin-settingphp.png?nolink |}}
nano /var/www/poweradmin/config/settings.php
dan salin sesuai yang digenerate oleh installer poweradmin.
=== Delete file installer pada webserver ===
{{ :deployment:network:powerdns:padmin-laststep.png?nolink |}}
Selanjutnya adallah tinggal delete file installer pada webserver
rm /var/www/poweradmin/install/ -rf
=== Poweradmin ===
{{ :deployment:network:powerdns:padmin-result.png?nolink |}}