deployment:network:powerdns:poweradmin

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
deployment:network:powerdns:poweradmin [2026/02/27 13:19] – [Buat Database & User PostgreSQL] ilyasadeployment:network:powerdns:poweradmin [2026/03/01 17:37] (current) – [Run the Web Installer] ilyasa
Line 2: Line 2:
 ====== Poweradmin : Web UI untuk PowerDNS server ====== ====== Poweradmin : Web UI untuk PowerDNS server ======
  
-====== PowerDNS : Installasi dengan posgresSQL Backend (Debian 12/13) ====== 
  
 ==== Prerequisite ==== ==== Prerequisite ====
Line 17: Line 16:
 === Install PHP + Webserver-Nginx === === Install PHP + Webserver-Nginx ===
 <code bash> <code bash>
-apt install -y nginx php php-fpm php-pgsql php-pdo-pgsql php-gettext php-mbstring php-xml php-curl php-intl php-session wget unzip+apt install -y nginx php php-fpm php-pgsql php-mbstring php-xml php-curl php-intl gettext wget
 </code> </code>
  
-==== Buat Database & User PostgreSQL ====+==== Download Latest Release Poweradmin ====
  
-=== Buat database dan user: ===+=== Download Poweradmin ===
 Cek versi latest di: https://github.com/poweradmin/poweradmin/releases Cek versi latest di: https://github.com/poweradmin/poweradmin/releases
 <code bash> <code bash>
Line 36: Line 35:
 sudo chmod -R 755 /var/www/poweradmin sudo chmod -R 755 /var/www/poweradmin
 </code> </code>
-==== Konfigurasi PowerDNS conflict port dengan ''systemd-resolved'' ==== 
-Sometimes server linux terutama cloud images, menggunakan ''systemd-resolved'' yang menggunakan port 53 secara default. Kita ingin mendisable hal berikut untuk dapat digunakan PowerDNS Nanti. 
  
-=== Disable systemd-resolved === +==== Konfigurasi Postgres Database Allow Remote Connection (Optional)  ==== 
-<code> +Hanya jika poweradmin berada di machine yang berbeda 
-sudo systemctl disable systemd-resolved --now +=== Edit postgresql.conf — Untuk allow listening pada all interfaces===
-</code> +
- +
-hapus stub resolv.conf: +
-<code> +
-sudo rm /etc/resolv.conf +
-</code> +
- +
-buat manual resolv.conf: +
-<code> +
-sudo nano /etc/resolv.conf +
-</code> +
-Sesuaikan dengan dns server kalian: +
-Contoh:+
 <code bash> <code bash>
-nameserver 8.8.8.8 +sudo nano /etc/postgresql/*/main/postgresql.conf
-nameserver 1.1.1.1+
 </code> </code>
-==== Konfigurasi PowerDNS Database Conection ==== +Ubah:
- +
- +
-=== Hapus bind.conf dikarenakan kita menggunakan psql sebagai our backend ===+
 <code bash> <code bash>
-rm /etc/powerdns/pdns.d/bind.conf+listen_addresses = 'localhost'
 </code> </code>
- +Ke:
-=== Buat konfigurasi powerdns database connetion sesuai dengan database kita ===+
 <code bash> <code bash>
-nano /etc/powerdns/pdns.d/gpgsql.conf +listen_addresses '*'
-</code> +
-<code bash> +
-launch=gpgsql +
-gpgsql-host=127.0.0.1 +
-gpgsql-port=5432 +
-gpgsql-dbname=powerdns +
-gpgsql-user=pdns +
-gpgsql-password=passwordku +
-</code> +
-=== Restart Service === +
-<code bash> +
-systemctl restart pdns +
-systemctl enable pdns +
-systemctl status pdns+
 </code> </code>
  
- +=== Edit pg_hba.conf — Untuk allow poweradmin host: ===
-{{indexmenu_n>001}} +
-====== PowerDNS : Installasi dengan posgresSQL Backend (Debian 12/13) ====== +
- +
-==== Install Paket ==== +
- +
-=== Update repository: ===+
 <code bash> <code bash>
-apt update+nano /etc/postgresql/*/main/pg_hba.con
 </code> </code>
- +Pada bagian kongigurasi host tambahkan line:
-=== Install PowerDNS Authoritative + PostgreSQL===+
 <code bash> <code bash>
-apt install pdns-server pdns-backend-pgsql postgresql+host    powerdns    pdns          <poweradmin-ip>/32    md5 # Dapat dihapus nanti setelah init powerdns 
 +host    powerdns    poweradmin    <poweradmin-ip>/32    md5
 </code> </code>
 +Ganti <poweradmin-ip> Dengan IP PowerDNS Server
 +==== Konfigurasi Webserver (Nginx) ====
  
-=== Pastikan service PostgreSQL berjalan: ===+=== Create Simple HTTP ===
 <code bash> <code bash>
-systemctl status postgresql+sudo nano /etc/nginx/sites-available/poweradmin
 </code> </code>
 +<code nginx>
 +server {
 +    listen 8081;
 +    server_name _;  # your-domain.com or server IP
  
-==== Buat Database & User PostgreSQL ====+    root /var/www/poweradmin; 
 +    index index.php index.html;
  
-=== Buat database dan user: === +    access_log /var/log/nginx/poweradmin_access.log
-<code sql> +    error_log  /var/log/nginx/poweradmin_error.log;
-sudo -u postgres psql <<EOF +
-CREATE DATABASE powerdns+
-CREATE USER pdns WITH PASSWORD 'passwordku'; +
-ALTER DATABASE powerdns OWNER TO pdns; +
-GRANT ALL PRIVILEGES ON DATABASE powerdns TO pdns; +
-EOF +
-</code>+
  
-=== Import schema bawaan PowerDNS: === +    location / { 
-<code bash> +        try_files $uri $uri/ /index.php?$args; 
-sudo -u postgres psql powerdns < /usr/share/pdns-backend-pgsql/schema/schema.pgsql.sql +    }
-</code>+
  
 +    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;
 +    }
  
-=== Grant Permission to user pdns: === +    location ~ /\.ht { 
-<code sql> +        deny all
-sudo -u postgres psql powerdns <<EOF +    } 
-GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO pdns+}
-GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO pdns; +
-GRANT ALL PRIVILEGES ON SCHEMA public TO pdns; +
-ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO pdns; +
-ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO pdns; +
-EOF+
 </code> </code>
- +=== Enable Nginx Sites ===
-=== Cek tabel sudah dibuat: ===+
 <code bash> <code bash>
-sudo -u postgres psql powerdns -c "\dt"+sudo ln -s /etc/nginx/sites-available/poweradmin /etc/nginx/sites-enabled/ 
 +sudo nginx -t 
 +sudo systemctl reload nginx
 </code> </code>
  
 +==== 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 |}}
  
-==== Konfigurasi PowerDNS conflict port dengan ''systemd-resolved'' ==== +=== Setting Database user untuk poweradmin === 
-Sometimes server linux terutama cloud images, menggunakan ''systemd-resolved'' yang menggunakan port 53 secara defaultKita ingin mendisable hal berikut untuk dapat digunakan PowerDNS Nanti+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 |}} 
-=== Disable systemd-resolved === +{{ :deployment:network:powerdns:padmin-database3.png?nolink&600 |}} 
-<code> +Kita akan diberikan sql file untuk di jalankan pada powerdns server. Cukup jalankan ini saja pada powerdns server. 
-sudo systemctl disable systemd-resolved --now+<code sql
 +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;"
 </code> </code>
  
-hapus stub resolv.conf: +=== Setting /config/setting.php === 
-<code> +Setelah nya poweradmin akan memberikan ''setting.php'' yang dapat disalin di file webserver poweradmin 
-sudo rm /etc/resolv.conf +{{ :deployment:network:powerdns:padmin-settingphp.png?nolink |}}
-</code> +
- +
-buat manual resolv.conf: +
-<code> +
-sudo nano /etc/resolv.conf +
-</code> +
-Sesuaikan dengan dns server kalian: +
-Contoh:+
 <code bash> <code bash>
-nameserver 8.8.8.8 +nano /var/www/poweradmin/config/settings.php
-nameserver 1.1.1.1+
 </code> </code>
-==== Konfigurasi PowerDNS Database Conection ====+dan salin sesuai yang digenerate oleh installer poweradmin.
  
  
-=== Hapus bind.conf dikarenakan kita menggunakan psql sebagai our backend === +=== Delete file installer pada webserver ===
-<code bash> +
-rm /etc/powerdns/pdns.d/bind.conf +
-</code>+
  
-=== Buat konfigurasi powerdns database connetion sesuai dengan database kita ===+{{ :deployment:network:powerdns:padmin-laststep.png?nolink |}} 
 +Selanjutnya adallah tinggal delete file installer pada webserver
 <code bash> <code bash>
-nano /etc/powerdns/pdns.d/gpgsql.conf+rm /var/www/poweradmin/install/ -rf
 </code> </code>
-<code bash> 
-launch=gpgsql 
-gpgsql-host=127.0.0.1 
-gpgsql-port=5432 
-gpgsql-dbname=powerdns 
-gpgsql-user=pdns 
-gpgsql-password=passwordku 
-</code> 
-=== Restart Service === 
-<code bash> 
-systemctl restart pdns 
-systemctl enable pdns 
-systemctl status pdns 
-</code> 
- 
-==== Testing dengan pembuatan domain ==== 
-=== Install tools === 
- 
-<code bash> 
-apt install pdns-tools dnsutils -y 
-</code> 
- 
-=== Buat Zones dengan pdnsutil === 
- 
-<code bash> 
-sudo pdnsutil create-zone test.local 
-</code> 
- 
-=== Tambahkan Recods === 
- 
-<code bash> 
-# Add SOA record 
-sudo pdnsutil add-record test.local @ SOA "ns1.test.local. admin.test.local. 1 3600 900 604800 300" 
- 
-# Add NS record 
-sudo pdnsutil add-record test.local @ NS ns1.test.local 
- 
-# Add A record for nameserver 
-sudo pdnsutil add-record test.local ns1 A 192.168.1.1 
- 
-# Add A record for test host 
-sudo pdnsutil add-record test.local www A 192.168.1.10 
- 
-</code> 
-=== Verify Zones === 
- 
-<code bash> 
-sudo pdnsutil list-zone test.local 
-</code> 
- 
-=== Check Zones === 
- 
-<code bash> 
-sudo pdnsutil check-zone test.local 
-</code> 
- 
-=== Test DNS Query === 
- 
-<code bash> 
-# Query your PowerDNS server directly 
-dig @127.0.0.1 www.test.local A 
-dig @127.0.0.1 test.local NS 
-dig @127.0.0.1 test.local SOA 
-</code> 
- 
- 
  
 +=== Poweradmin ===
 +{{ :deployment:network:powerdns:padmin-result.png?nolink |}}
  • deployment/network/powerdns/poweradmin.1772173147.txt.gz
  • Last modified: 2026/02/27 13:19
  • by ilyasa