home-assistant.io/source/_integrations/cloudflare.markdown

2.9 KiB

title, description, ha_category, ha_release, ha_iot_class, ha_codeowners, ha_domain, ha_config_flow
title description ha_category ha_release ha_iot_class ha_codeowners ha_domain ha_config_flow
Cloudflare Automatically update your Cloudflare DNS records.
Network
0.74 Cloud Push
@ludeeus
@ctalkington
cloudflare true

With the cloudflare integration, you can keep your Cloudflare records up to date.

The integration runs every hour, but can also be started manually by using the service cloudflare.update_records under services.

Due to a limitation in the Cloudflare API, you can not use this integration with any of the following TLD's:

  • .cf
  • .ga
  • .gq
  • .ml
  • .tk

Requirements

On older versions of Home Assistant, this integration used the account email and Global API Key to authenticate.

As of Home Assistant 0.117, API Tokens are now used to authenticate.

Setup requires an API Token created with Zone:Zone:Read and Zone:DNS:Edit permissions for all zones in your account.

An easy way to create this is to start with the "Edit zone DNS" template then add Zone:Zone:Read to the permissions.

Cloudflare API Tokens Guide

{% include integrations/config_flow.md %}

Additional information

Usage of external service

This platform uses the API from ipify.org to set the public IP address.

Home Assistant Companion App

If you would like to use iOS App via Cloudflare set Minimum TLS version as 1.2, in order to do that, do the following:

  1. Login to your Cloudflare account.
  2. Choose your domain.
  3. Click on the SSL/TLS icon.
  4. Go to tab Edge Certificates.
  5. Find Minimum TLS Version and set it to 1.2.

Other settings should not cause any issues.

SSH over Cloudflare

For SSH usage (according to this source), you need to connect directly to your server (bypassing Cloudflare). To do that, create a CNAME DNS record, e.g., ssh.example.com, with proxy status as "DNS only" (to do that click on orange icon, it will change color to gray) and then connect to ssh.example.com using your server SSH port.

The minimum DNS record settings (if you have set up HTTPS already)

To redirect from your domain to the IP address of your Home Assistant instance, set this DNS record:

Type: A
Name: @
IPv4 Address: your.ip.address

You can find your current IP address using this page.

In order to redirect from https://www to https:// you need to set this DNS record:

Type: CNAME
Name: @
Target: example.com (your actual domain)

And also create Page Rule:

If the URL matches: www.example.com*
Then the settings are: Forwarding URL
Status: 302 - Temporary redirect
Destination URL: https://example.com/$1