Cloudflare as a Dynamic DNS
If you need to have a DNS record that point to a Dynamic IP (DDNS), for example, your home IP address, this tool allow you to accomplish this job!
For do this this we need cloudflare-dynamic-ip tool allow you to simply have a specific DNS record such as home.example.com
that point to your dynamic IP.
Requirements
Domain Name
Raspberry Pi4 or any other Linux Based OS
composer
php-7.3
Installation
Clone the Github repo, install dependencies, set API Token and set a cron job every 15min that run this script and you're done!
git clone https://github.com/andp97/cloudflare-dynamic-ip.git
cd cloudflare-dynamic-ip
INSTALL_PATH=$(pwd)
composer install --no-dev
nano .env
echo -e "*/15 * * * * $INSTALL_PATH/cf-ip 2>&1 > /dev/null\n"
crontab -e
You can also execute this script via bash
#Get dns record name from env and target ip from remote host (https://ip.andreapavone.com)
./cf-ip
#Passing parameters to the script
./cf-ip <dns_record_name> <target_ip>
On .env
file you can set:
CLOUDFLARE_TOKEN
(see how can you generate token here: https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys)CLOUDFLARE_ZONE_NAME
orCLOUDFLARE_ZONE_ID
DNS_RECORD_NAME
is the subdomain that you prefer to use (for example: home.example.com). If you prefer to be safer use a randomized token for theDNS_RECORD_NAME
Update
git pull
composer update