- Simple container for setting setting and updating cloudflare records to your local ip address.
- Only makes requests if the IP has changed.
- By default it runs once every minute and the IP is resolved by https://api.ipify.org/.
- Get your API Token here (Top right -> My Profile -> API Tokens)
Click create token. You can then use the Edit DNS Zone template. Give it a name.
- Create an
.env
file:
TOKEN=mytoken
ZONE=example.org
DNS_RECORD=some.example.org
PROXIED=false
- Run the container
docker run -d --name ddns --restart always --env-file .env cupcakearmy/ddns-cloudflare
With docker-compose:
git clone https://github.com/CupCakeArmy/docker-ddns-cloudflare.git
cp .sample.env .env
# Edit the .env file with your data
docker-compose up -d
Env | Default | Description |
---|---|---|
TOKEN |
API Token. | |
ZONE |
Cloudflare zone where your domain is. | |
DNS_RECORD |
The actual DNS record that should be updated. | |
PROXIED |
true |
Whether the record is proxied by CloudFlare or not. |
CRON |
*/5 * * * * |
Frequency of updates. The following syntax is supported |
RESOLVER |
https://api.ipify.org/ |
The endpoint used to determine your public ip. |
LOG_LEVEL |
info |
Log level to run at. See winston for possible values |
By default the script runs every 5 minutes. You can customize this by simply setting the CRON
value in the .env
file.
# .env
# e.g. every minute
CRON=* * * * *
By default the script checks the own ip by calling https://api.ipify.org/
. This also can be configured. It has to be an endpoint that return a plain text containing the ip by get request.
# .env
RESOLVER=https://ipv4.icanhazip.com/