|
|
||
|---|---|---|
| bin | ||
| config | ||
| src | ||
| tests | ||
| .gitignore | ||
| README.md | ||
| composer.json | ||
| composer.lock | ||
| deploy.sh | ||
| phpunit.xml | ||
README.md
pb-dydns
Script in PHP to update DNS type A records on porkbun.com using their API.
This can easily be adapted to other registrars or scripting languages.
Prerequisites
- At least one domain in porkbun.com with DNS type A records already pointing to your dynamic IP address.
- Access to the Porkbun API (API key + secret key).
Installation & Deployment
1. Clone the repository
git clone https://gitea.ramoncaballero.dev/mon/pb-dydns.git
cd pb-dydns
2. Deploy the script
Run the provided deployment script:
./deploy.sh
This creates a directory:
$HOME/pb-dydns-live
Inside it you will find:
- pb-dydns.php (the script you run)
- PorkbunAPI.php
- UpdateDnsCommand.php
- Config.php
- Logger.php
- pb-dydns.json (your configuration file)
- pb-dydns.log (log file)
3. Configure it
Edit the configuration file $HOME/pb-dydns-live/pb-dydns.json
Fill in:
- the Porkbun API endpoint (usually https://api.porkbun.com/api/json/v3/)
- your Porkbun API key
- your secret key
How to use it
From the command line
$ php /path/to/pb-dydns-live/pb-dydns.php yourdomain.com
As a cron job
Edit your crontab:
crontab -e
Add a line like:
*/10 * * * * php /path/to/pb-dydns-live/pb-dydns.php yourdomain.com > /dev/null
This runs the updater every 10 minutes.
Logs
DNS updates are written to /path/to/pb-dydns-live/pb-dydns.log
Runs where nothing changes do not produce log entries.