diff --git a/README.md b/README.md index c6d64e6..d0137d0 100644 --- a/README.md +++ b/README.md @@ -2,43 +2,82 @@ Script in PHP to update DNS type A records on porkbun.com using their API. -This can easily be modified to a different programming or scripting language and domain registrar. +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 Porkbun API. +- Access to the Porkbun API (API key + secret key). + +## Installation & Deployment + +### 1. Clone the repository + +```bash +git clone https://gitea.ramoncaballero.dev/mon/pb-dydns.git +cd pb-dydns +``` + +### 2. Deploy the script + +Run the provided deployment script: + +```bash +./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 command line +### From the command line ``` -$ php /path/to/pb-dydns.php domain_name +$ php /path/to/pb-dydns-live/pb-dydns.php yourdomain.com ``` -### as a cron job +### As a cron job -``` -$ crontab -e +Edit your crontab: + +```bash +crontab -e ``` -Modify this line to fit your needs, and add it as many times as domains you want to automatically update: +Add a line like: ``` -*/10 * * * * php /path/to/pb-dydns.php domain_name > /dev/null +*/10 * * * * php /path/to/pb-dydns-live/pb-dydns.php yourdomain.com > /dev/null ``` -That will run the script every 10 minutes. +This runs the updater every 10 minutes. -Then restart cron (I'm not sure if this is necessary): +## Logs -``` -$ sudo systemctl restart cron -``` +DNS updates are written to `/path/to/pb-dydns-live/pb-dydns.log` -Entries to `pb-dydns.log` will be added, to view it you can: - -``` -$ cat /path/to/pb-dydns.log -``` +Runs where nothing changes do not produce log entries.