Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| deployment:network:powerdns:poweradmin [2026/02/27 13:19] – [Buat Database & User PostgreSQL] ilyasa | deployment: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 | + | apt install -y nginx php php-fpm php-pgsql php-mbstring php-xml php-curl php-intl |
| </ | </ | ||
| - | ==== Buat Database & User PostgreSQL | + | ==== Download Latest Release Poweradmin |
| - | === Buat database dan user: === | + | === Download Poweradmin |
| Cek versi latest di: https:// | Cek versi latest di: https:// | ||
| <code bash> | <code bash> | ||
| Line 36: | Line 35: | ||
| sudo chmod -R 755 / | sudo chmod -R 755 / | ||
| </ | </ | ||
| - | ==== Konfigurasi PowerDNS conflict port dengan '' | ||
| - | Sometimes server linux terutama cloud images, menggunakan '' | ||
| - | === Disable systemd-resolved | + | ==== Konfigurasi Postgres Database Allow Remote Connection (Optional) |
| - | < | + | Hanya jika poweradmin berada di machine yang berbeda |
| - | sudo systemctl disable systemd-resolved --now | + | === Edit postgresql.conf — Untuk allow listening pada all interfaces: === |
| - | </ | + | |
| - | + | ||
| - | hapus stub resolv.conf: | + | |
| - | < | + | |
| - | sudo rm / | + | |
| - | </ | + | |
| - | + | ||
| - | buat manual resolv.conf: | + | |
| - | < | + | |
| - | sudo nano / | + | |
| - | </ | + | |
| - | Sesuaikan dengan dns server kalian: | + | |
| - | Contoh: | + | |
| <code bash> | <code bash> | ||
| - | nameserver 8.8.8.8 | + | sudo nano / |
| - | nameserver 1.1.1.1 | + | |
| </ | </ | ||
| - | ==== Konfigurasi PowerDNS Database Conection ==== | + | Ubah: |
| - | + | ||
| - | + | ||
| - | === Hapus bind.conf dikarenakan kita menggunakan psql sebagai our backend === | + | |
| <code bash> | <code bash> | ||
| - | rm / | + | listen_addresses = ' |
| </ | </ | ||
| - | + | Ke: | |
| - | === Buat konfigurasi powerdns database connetion sesuai dengan database kita === | + | |
| <code bash> | <code bash> | ||
| - | nano / | + | listen_addresses |
| - | </ | + | |
| - | <code bash> | + | |
| - | launch=gpgsql | + | |
| - | gpgsql-host=127.0.0.1 | + | |
| - | gpgsql-port=5432 | + | |
| - | gpgsql-dbname=powerdns | + | |
| - | gpgsql-user=pdns | + | |
| - | gpgsql-password=passwordku | + | |
| - | </ | + | |
| - | === Restart Service === | + | |
| - | <code bash> | + | |
| - | systemctl restart pdns | + | |
| - | systemctl enable pdns | + | |
| - | systemctl status pdns | + | |
| </ | </ | ||
| - | + | === Edit pg_hba.conf — Untuk allow poweradmin host: === | |
| - | {{indexmenu_n> | + | |
| - | ====== PowerDNS : Installasi dengan posgresSQL Backend (Debian 12/13) ====== | + | |
| - | + | ||
| - | ==== Install Paket ==== | + | |
| - | + | ||
| - | === Update repository: === | + | |
| <code bash> | <code bash> | ||
| - | apt update | + | nano / |
| </ | </ | ||
| - | + | Pada bagian kongigurasi host tambahkan line: | |
| - | === Install PowerDNS Authoritative + PostgreSQL: === | + | |
| <code bash> | <code bash> | ||
| - | apt install | + | host powerdns |
| + | host powerdns | ||
| </ | </ | ||
| + | Ganti < | ||
| + | ==== Konfigurasi Webserver (Nginx) ==== | ||
| - | === Pastikan service PostgreSQL berjalan: | + | === Create Simple HTTP === |
| <code bash> | <code bash> | ||
| - | systemctl status postgresql | + | sudo nano / |
| </ | </ | ||
| + | <code nginx> | ||
| + | server { | ||
| + | listen 8081; | ||
| + | server_name _; # your-domain.com or server IP | ||
| - | ==== Buat Database & User PostgreSQL ==== | + | root / |
| + | index index.php index.html; | ||
| - | === Buat database dan user: === | + | access_log / |
| - | <code sql> | + | |
| - | sudo -u postgres psql << | + | |
| - | CREATE DATABASE powerdns; | + | |
| - | CREATE USER pdns WITH PASSWORD ' | + | |
| - | ALTER DATABASE powerdns OWNER TO pdns; | + | |
| - | GRANT ALL PRIVILEGES ON DATABASE powerdns TO pdns; | + | |
| - | EOF | + | |
| - | </ | + | |
| - | === Import schema bawaan PowerDNS: === | + | location / { |
| - | <code bash> | + | |
| - | sudo -u postgres psql powerdns < /usr/share/ | + | } |
| - | </ | + | |
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | 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 << | + | } |
| - | 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 | + | |
| </ | </ | ||
| - | + | === Enable Nginx Sites === | |
| - | === Cek tabel sudah dibuat: | + | |
| <code bash> | <code bash> | ||
| - | sudo -u postgres psql powerdns | + | sudo ln -s / |
| + | sudo nginx -t | ||
| + | sudo systemctl reload nginx | ||
| </ | </ | ||
| + | ==== Run the Web Installer ==== | ||
| + | === Buka Installer pada browser http:// | ||
| + | {{ : | ||
| + | === 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) | ||
| + | {{ : | ||
| - | ==== Konfigurasi PowerDNS conflict port dengan '' | + | === Setting Database user untuk poweradmin |
| - | Sometimes server linux terutama cloud images, menggunakan '' | + | Sekarang kita akan mengenerate user database untuk poweradmin. sesuaikan dengan user yang kita allow pada konfigurasi di atas. |
| - | + | {{ : | |
| - | === Disable systemd-resolved === | + | {{ : |
| - | < | + | Kita akan diberikan sql file untuk di jalankan pada powerdns server. Cukup jalankan ini saja pada powerdns server. |
| - | sudo systemctl disable systemd-resolved | + | < |
| + | sudo -u postgres psql -d powerdns -c " | ||
| + | sudo -u postgres psql -d powerdns -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO poweradmin;" | ||
| + | sudo -u postgres psql -d powerdns | ||
| </ | </ | ||
| - | hapus stub resolv.conf: | + | === Setting |
| - | < | + | Setelah nya poweradmin akan memberikan '' |
| - | sudo rm /etc/resolv.conf | + | {{ :deployment: |
| - | </ | + | |
| - | + | ||
| - | buat manual resolv.conf: | + | |
| - | < | + | |
| - | sudo nano / | + | |
| - | </ | + | |
| - | Sesuaikan dengan dns server kalian: | + | |
| - | Contoh: | + | |
| <code bash> | <code bash> | ||
| - | nameserver 8.8.8.8 | + | nano / |
| - | nameserver 1.1.1.1 | + | |
| </ | </ | ||
| - | ==== 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 / | + | |
| - | </ | + | |
| - | === Buat konfigurasi | + | {{ : |
| + | 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 bash> | ||
| - | launch=gpgsql | ||
| - | gpgsql-host=127.0.0.1 | ||
| - | gpgsql-port=5432 | ||
| - | gpgsql-dbname=powerdns | ||
| - | gpgsql-user=pdns | ||
| - | gpgsql-password=passwordku | ||
| - | </ | ||
| - | === Restart Service === | ||
| - | <code bash> | ||
| - | systemctl restart pdns | ||
| - | systemctl enable pdns | ||
| - | systemctl status pdns | ||
| - | </ | ||
| - | |||
| - | ==== Testing dengan pembuatan domain ==== | ||
| - | === Install tools === | ||
| - | |||
| - | <code bash> | ||
| - | apt install pdns-tools dnsutils -y | ||
| - | </ | ||
| - | |||
| - | === Buat Zones dengan pdnsutil === | ||
| - | |||
| - | <code bash> | ||
| - | sudo pdnsutil create-zone test.local | ||
| - | </ | ||
| - | |||
| - | === Tambahkan Recods === | ||
| - | |||
| - | <code bash> | ||
| - | # Add SOA record | ||
| - | sudo pdnsutil add-record test.local @ SOA " | ||
| - | |||
| - | # 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 | ||
| - | |||
| - | </ | ||
| - | === Verify Zones === | ||
| - | |||
| - | <code bash> | ||
| - | sudo pdnsutil list-zone test.local | ||
| - | </ | ||
| - | |||
| - | === Check Zones === | ||
| - | |||
| - | <code bash> | ||
| - | sudo pdnsutil check-zone test.local | ||
| - | </ | ||
| - | |||
| - | === 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 | ||
| - | </ | ||
| - | |||
| - | |||
| + | === Poweradmin === | ||
| + | {{ : | ||