#!/usr/bin/env bash # Copyright (c) 2021-2026 community-scripts ORG # Author: Slaviša Arežina (tremor021) # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://www.powerdns.com/ source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color verb_ip6 catch_errors setting_up_container network_check update_os msg_info "Installing Dependencies" $STD apt install -y sqlite3 msg_ok "Installed Dependencies" PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="gettext,tokenizer,sqlite3,ldap" setup_php setup_deb822_repo \ "pdns" \ "https://repo.powerdns.com/FD380FBB-pub.asc" \ "http://repo.powerdns.com/debian" \ "trixie-auth-50" cat </etc/apt/preferences.d/auth-50 Package: pdns-* Pin: origin repo.powerdns.com Pin-Priority: 600 EOF escape_sql() { printf '%s' "$1" | sed "s/'/''/g" } msg_info "Setting up PowerDNS" $STD apt install -y \ pdns-server \ pdns-backend-sqlite3 msg_ok "Setup PowerDNS" fetch_and_deploy_gh_release "poweradmin" "poweradmin/poweradmin" "tarball" msg_info "Setting up Poweradmin" sqlite3 /opt/poweradmin/powerdns.db /dev/null) sqlite3 /opt/poweradmin/powerdns.db "INSERT INTO users (username, password, fullname, email, description, perm_templ, active, use_ldap) \ VALUES ('$(escape_sql "${PA_ADMIN_USERNAME}")', '$(escape_sql "${PASSWORD_HASH}")', '$(escape_sql "${PA_ADMIN_FULLNAME}")', \ '$(escape_sql "${PA_ADMIN_EMAIL}")', 'System Administrator', 1, 1, 0);" cat <~/poweradmin.creds Admin Username: ${PA_ADMIN_USERNAME} Admin Password: ${PA_ADMIN_PASSWORD} EOF cat </opt/poweradmin/config/settings.php [ 'type' => 'sqlite', 'file' => '/opt/poweradmin/powerdns.db', ], /** * Security Settings */ 'security' => [ 'session_key' => '${PA_SESSION_KEY}', ], /** * Interface Settings */ 'interface' => [ 'language' => 'en_EN', ], /** * DNS Settings */ 'dns' => [ 'hostmaster' => 'localhost.lan', 'ns1' => '8.8.8.8', 'ns2' => '9.9.9.9', ] ]; EOF rm -rf /opt/poweradmin/install msg_ok "Setup Poweradmin" msg_info "Creating Service" rm /etc/apache2/sites-enabled/000-default.conf cat </etc/apache2/sites-enabled/poweradmin.conf ServerName localhost DocumentRoot /opt/poweradmin Options -Indexes +FollowSymLinks AllowOverride All Require all granted # For DDNS update functionality RewriteEngine On RewriteRule ^/update(.*)\$ /dynamic_update.php [L] RewriteRule ^/nic/update(.*)\$ /dynamic_update.php [L] EOF $STD a2enmod rewrite headers chown -R www-data:www-data /opt/poweradmin $STD systemctl restart apache2 msg_info "Created Service" motd_ssh customize cleanup_lxc