| POWERDYNDNS(5) | Linux User Manuals | POWERDYNDNS(5) |
powerdyndns.conf.php - PowerDynDNS dynamic DNS service for PowerDNS with MySQL
/etc/powerdyndns/powerdyndns.conf.php or /etc/powerdns/powerdyndns.conf.php
Users running both PowerDynDNS and PowerTinyDynDNS should put all settings in this configuration file.
The standard ports for POP3 are 110 (insecure and starttls), and 995 (tls). To activate the insecure port, set $insecure to TRUE. To activate STARTTLS on the insecure port, set $starttls to TRUE. To activate the TLS port, set $tls to TRUE. To activate the service on all network interfaces, use $address 0.0.0.0, or just the IP address you want the service available on.
$debug Controls debugging messages. (TRUE or FALSE).
$syslog Controls logging to syslog (TRUE or FALSE).
$logfile TRUE or FALSE or pathname, if TRUE, /var/log/powerdyndns/powerdyndns-YYYY-MM.log
$register Controls whether public registration is open. (TRUE or FALSE)
$dynzone Is the domain name the dynamic hosts are created in, ie: for "name.dyn.example.com", "dyn.example.com" is the $dynzone.
$servicedomain Is the domain name PowerDynDNS or PowerTinyDynDNS is reachable at.
$serviceurl Is any additional URL beyond $servicedomain PowerDynDNS is found at.
$mailfrom Is the email address mail from the service is sent by.
$dbhost Is the MySQL/MariaDB host.
$dbuser Is the MySQL/MariaDB username.
$dbname Is the MySQL/MariaDB database name for PowerDynDNS and PowerTinyDynDNS.
$dbpass Is the MySQL/MariaDB user's password.
$usertable Is the MySQL/MariaDB dynamic DNS users table.
$policytable Is the MySQL/MariaDB dynamic DNS policy table.
$tokentable Is the MySQL/MariaDB dynamic DNS authorization tokens table.
$dnsaccess is either 'db' or 'api'. Using the API allows you to decouple the dynamic DNS service from direct access to the PowerDNS primary server, but requires the use of the PowerDNS Simple API. Default: db
$pdnsapikey Is a PowerDNS Simple API token. If used, this token needs authorization to modify the dynamic DNS zone.
$pdnsapiurl If used, is the URL the PowerDNS Simple API is found at.
$checkip Is a URL to a service that returns the user's current public IP address, and nothing more.
$logpw Logs all passwords used. This should only be used for debugging.
$logpwfail Logs all failed passwords. This should only be used for debugging.
$verbose TRUE or FALSE, controls verbose output when running PowerTinyDynDNS in the foreground.
$maxclients is the maximum number of clients that can be simultaneously connected. This number should be relatively small, as clients are only conected long enough to log in, be told there is no mail, and immediately log out.
$daemonize Controls daemonization of PowerTinyDynDNS, TRUE or FALSE. FALSE is the appropriate setting when running PoweTinyDynDNS under systemd.
$hostname Hostname used by TinyDynDNS default: system hostname
$address Address PowerTinyDynDNS listens on, default: 0.0.0.0 (all interfaces)
$insecure Whether or not PowerTinyDynDNS opens an unencrypted port. TRUE or FALSE. default: FALSE
$starttls Whether or not PowerTinyDynDNS uses STARTTLS on an insecure port. TRUE or FALSE. default: FALSE
$tls Whether or not PowerTinyDynDNS opens a TLS port. default: FALSE
$insecureport Port number PowerTinyDynDNS uses for an insecure port. default: 110
$secureport Port number PowerTinyDynDNS uses for a TLS port. default: 995
$sslkey Pathname to the key file PowerTinyDynDNS uses for TLS.
$sslcert Pathname to the full certificate chain PowerTinyDynDNS uses for TLS.
$runasuser PowerTinyDynDNS needs to start as the superuser/root, in order to open privileged ports, but then drops to this unprivileged user.
$socktimeout is the number of seconds PowerTinyDynDNS waits for a socket connection to complete.
$sesstimeout is the number of seconds of idle time PowerTinyDynDNS waits before a session is automatically terminated.
<?php
$debug = TRUE;
$syslog = TRUE;
$logfile = TRUE;
$register = TRUE;
$dynzone = 'dyn.example.com';
$servicedomain = 'dyn.example.com';
$serviceurl = '/';
$mailfrom = 'service@dyn.example.com';
$dbhost = '127.0.0.1';
$dbuser = 'pdns';
$dbname = 'pdns';
$dbpass = 'password';
$usertable = 'dynusers';
$hosttable = 'dynhosts';
$policytable = 'dynpolicy';
$tokentable = 'dyntokens';
$dnsaccess = 'api'; // db or api, default db
$pdnsapikey = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$pdnsapiurl = 'https://dns.example.com/powerdnsapi';
$checkip = 'https://dyn.example.com/checkip';
$logpw = FALSE;
$logpwfail = FALSE;
############ PowerTinyDynDNS-specific settings ############
$verbose = TRUE;
$maxclients = 15;
$daemonize = FALSE;
$hostname = $dynzone;
$address = '0.0.0.0';
$insecure = TRUE;
$starttls = TRUE;
$tls = TRUE;
$insecureport = 110;
$secureport = 995;
$sslkey = '/etc/ssl/dehydrated/example.com/privkey.pem';
$sslcert = '/etc/ssl/dehydrated/example.com/fullchain.pem';
$runasuser = 'nobody';
$socktimeout = 10;
$sesstimeout = 60;
powerdyndns-client(1), Dynamic DNS client compatible with
dyn.org and PowerDynDNS
powertinydyndns-client(1), Dynamic DNS client compatible with
tinydyndns and PowerTinyDynDNS
powerdyndns-users(1), Manages dynamic DNS user accounts and hostname
records
PowerDNS Simple API, https://gothamcode.com/pdns-api
Ron Guerin <ron@vnetworx.net>
powerdyndns can be found at https://gothamcode.com/powerdyndns and
bugs/patches can be submitted by email.
| 2025-11-18 | November 2025 |