Cloudflare does not offer a DDNS client on the free plan. This node closes the gap.
Node that checks the public IP address of the current NodeRED instance using ipify. When the IP address doesn't match the cached value, calls the Cloudflare API to correct the value. The cached value is retrived from context on startup. Works with Cloudflare cached ip addressen too.
You need to login to your Cloudflare account and perform the following steps:
- Find your ZoneeID. We only need the ZoneID here.
- Create a Cloudflare API Token. Limit it to your Zone. It needs DNS edit permisssions
- Create an A record (AAAA not yet) for your DDNS site. Add a comment tha begins with
[DDNS]
(Case sensitive)
Add the Node to a page, use a button or a timer to trigger it.
Use a Catch node to see what errors are thrown from the DDNS node that aren't already being caught and handled.
Anything: input values are ignored, used only to trigger the lookup
msg.payload <json>
{
"ip": ["123.123.123.123", ...],
"updated": false /* Not updated since the last run */
}
In the Hub-spoke model the Cloudflare credentials are only maintained by the hub. This is kind of a service provider scenario. We use it on distributed farms where we can't control the access to hardware and don't want to distribute cloudflare credentials.
See the examples for a configuration
- Configure the hub URL including a path
- Configure the token to identify the spoke
- Use a button or timer to trigger it
- Use a
http request
node to talk to the hub
- Configure the list of spokes and their tokens
- use a
http in
and ahttp response
to handle spoke submissions
- Mocha, Chai, Sinon for testing
- No Runtime dependencies beyond NodeRED
- moved host & tokens to editable list
- moved nodes to
Cloudflare
category - Introduced hub & spoke nodes for central operations
- pass through msg object to be a good Redicen (NodeRED citicen)
- Initial creation
- Use Github Issues
- Discuss on the NodeRED forum
The Spoke component is useful even without Cloudflare and the hub component. Running it will provide you with your public IP address in the payload