{{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 |}}