GorkbunDDNS is a dynamic DNS (DDNS) updater for Porkbun↗, written in Go↗. It is designed to automatically update your DNS records with your current WAN IP address, supporting both IPv4 and IPv6 addresses. With a valid configuration, GorkbunDDNS is built to run reliably without crashing, ensuring DNS records are always up-to-date.
The preferred way to run GorkbunDDNS is via a Docker image. Follow the steps below to get started.
-
Docker↗ installed on your machine.
-
API access is enabled for domains you want to update.
API access can be managed on Porkbun's Domain management site↗:
-
You have a valid API and secret key pair.
Note
You can generate a new API key and secret key pair at Porkbun's API management page↗.
- Pull the Docker image
docker pull puma0243/gorkbunddns:latest- Run the Docker container
docker run -d \
-e DOMAINS=example.com,sub.example.com,sub2.example.com \
-e APIKEY=pk1_xyz \
-e SECRETKEY=sk1_xyz \
puma0243/gorkbunddns:latestThe program is configurable through environment variables:
| Variable | Description | Possible values | Required | Default |
|---|---|---|---|---|
DOMAINS |
The domains to update | A comma-separated list of FQDNs, e.g. example.com,api.example.com,*.example.com |
✅ | - |
APIKEY |
Your Porkbun API key | e.g. pk1_xyz |
✅ | - |
SECRETKEY |
Your Porkbun secret key | e.g. sk1_xyz |
✅ | - |
TIMEOUT |
Interval in seconds between DNS updates | TIMEOUT >= 1 |
❌ | 600 |
IPV4 |
Enable or disable IPv4 updates | true, false |
❌ | true |
IPV6 |
Enable or disable IPv6 updates | host-ip, prefix-only, fritzbox-ip, false |
❌ | false |
MULTIPLE_RECORDS |
How to handle multiple existing DNS records | skip, unify |
❌ | skip |
