# ownDynDNS Self-hosted dynamic DNS php script to update netcup DNS API from Router like AVM FRITZ!Box or UniFi Gateways ## Authors * Felix Kretschmer [@fernwerker](https://github.com/fernwerker) * Philipp Tempel [@philipptempel](https://github.com/philipptempel) * Branko Wilhelm [@b2un0](https://github.com/b2un0) ## Usage ### Installation * Copy all files to your [webspace](https://community.netcup.com/en/tutorials/ddns-with-webhosting) * create a copy of `.env.dist` as `.env` and configure: * `username` -> The username for your Router to authenticate (so not everyone can update your DNS) * `password` -> password for your Router * `apiKey` -> API key which is generated in netcup CCP * `apiPassword` -> API password which is generated in netcup CCP * `customerId` -> your netcup Customer ID * `debug` -> true|false enables debug mode and generates output of update.php (normal operation has no output) * Create each host record in your netcup CCP (DNS settings) before using the script. The script does not create any missing records. ### AVM FRITZ!Box Settings * Go to "Internet" -> "Freigaben" -> "DynDNS" * Choose "Benutzerdefiniert" * Update-URL: `https:///update.php?user=&password=&ipv4=&ipv6=&domain=` * only the url needs to be adjusted, the rest is automatically filled by your AVM FRITZ!Box * http or https is possible if valid SSL certificate (e.g. Let's Encrypt) * Single Domain: * Domainname: `` * Multiple Domains: * Domainname: `,,....` * Username: `` * Password: `` ### UniFi Gateways * Go to "Settings" -> "Internet" -> "Choose WAN Interface" -> "Dynamic DNS" -> "+ Create New Dynamic DNS" * Service "Choose -> `dyndns`" * Hostname: `` * Username: `` * Password: `` * Server: `dyn.yourdomain.com/update.php/\/nic/update?user=%u&password=%p&ipv4=%i&force=0&mode=both&domain=%h` # run as cronjob on a **nix based device * see [examples](./examples) ## References * DNS API Documentation: https://ccp.netcup.net/run/webservice/servers/endpoint.php * Source of dnsapi.php: https://ccp.netcup.net/run/webservice/servers/endpoint.php?PHPSOAPCLIENT ## License Published under GNU General Public License v3.0 © Felix Kretschmer, 2021