From 6868209d6553421b2aa1e822cc9f68414c3d5dd2 Mon Sep 17 00:00:00 2001 From: Brenner-Bot Date: Mon, 14 Feb 2022 11:29:01 +0000 Subject: [PATCH] :tada: Release of add-on Cloudflared 0.5.0 --- README.md | 6 ++-- cloudflared/CHANGELOG.md | 5 +-- cloudflared/DOCS.md | 68 ++++++++++++++++++++++++++++++++++++++-- cloudflared/config.yaml | 10 ++++-- 4 files changed, 79 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2490f51..e3c8f77 100644 --- a/README.md +++ b/README.md @@ -86,10 +86,10 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -[addon-cloudflared]: https://github.com/brenner-tobias/addon-cloudflared/tree/v0.4.3 -[addon-doc-cloudflared]: https://github.com/brenner-tobias/addon-cloudflared/blob/v0.4.3/README.md +[addon-cloudflared]: https://github.com/brenner-tobias/addon-cloudflared/tree/v0.5.0 +[addon-doc-cloudflared]: https://github.com/brenner-tobias/addon-cloudflared/blob/v0.5.0/README.md [cloudflared-issue]: https://github.com/brenner-tobias/addon-cloudflared/issues -[cloudflared-version-shield]: https://img.shields.io/badge/version-v0.4.3-blue.svg +[cloudflared-version-shield]: https://img.shields.io/badge/version-v0.5.0-blue.svg [cloudflared-aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [cloudflared-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg [cloudflared-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg diff --git a/cloudflared/CHANGELOG.md b/cloudflared/CHANGELOG.md index 7ee10aa..5f7b49f 100644 --- a/cloudflared/CHANGELOG.md +++ b/cloudflared/CHANGELOG.md @@ -1,4 +1,5 @@ ## What’s changed -## 🚀 Enhancements +## ✨ New features -- Add-On now also works, if SSL is set-up for Home Assistant +- Support custom data location using `data_path` config option @elcajon (#44) +- Add possibility to use a custom Cloudflared configuration @elcajon (#46) diff --git a/cloudflared/DOCS.md b/cloudflared/DOCS.md index 10b8b00..1ef3f44 100644 --- a/cloudflared/DOCS.md +++ b/cloudflared/DOCS.md @@ -67,9 +67,8 @@ restart your HomeAssistant instance.** Since HomeAssistant blocks requests from proxies / reverse proxies, you have to tell your instance to allow requests from the Cloudflared Add-on. The add-on runs locally, so HA has to trust the docker network. In order to do so, add the following lines -to your /config/configuration.yaml and restart your HA instance. -(if you need assistance changing the config, please follow the -[Advanced Configuration Tutorial][advancedconfiguration]): +to your `/config/configuration.yaml` (there is no need to adapt anything in these +lines since the IP range of the docker network is always the same): **Note**: _Remember to restart Home Assistance when the configuration is changed._ @@ -80,6 +79,9 @@ http: - 172.30.33.0/24 ``` +If you need assistance changing the config, please follow the +[Advanced Configuration Tutorial][advancedconfiguration]. + ### Add-on Configuration **Note**: _Remember to restart the add-on when the configuration is changed._ @@ -209,6 +211,65 @@ tunnel_name: "" additional_hosts: [] ``` +### Option: `data_folder` + +The `data_folder` option allows to change default storage +location (`/data`) for the automatically created `cert.pem` and +`tunnel.json` file.` + +Possible values are: + +- `config`: Files will be stored in /config/cloudflared. +- `share`: Files will be stored in /share/cloudflared. +- `ssl`: Files will be stored in /ssl/cloudflared. + +```yam +data_folder: ssl +``` + +The add-on takes care of moving the created files within the default location +to the custom `data_folder` when adding the option after initial add-on setup. + +**Note**: There are currently no automations in place when changing +from custom data folder to another custom data folder or back to default. +You have to take care of moving the files accordingly. + +### Option: `custom_config` + +The `custom_config` option can be used to create a custom `config.yml` +file to create more complex ingress configurations. + +The option can only be used in combination with the `data_folder` option. + +See [cloudflared documentation][cloudflared-ingress] for further details on +the needed file structure and content options. + +For example: if you set `data_folder: ssl` the add-on will search for +`/ssl/cloudflared/config.yml` when `custom_config: true`. + +Your file will be validated on add-on startup and all errors will be logged. + +For your custom config.yml you have to add values for `tunnel` and the tunnel +credentials file. The tunnel credentials file is located in your +`data_folder/cloudflared` and is named `tunnel.json`. + +The `tunnel.json` file contains your `` as `TunnelID` attribute. + +```yaml +--- +tunnel: +credentials-file: "/ssl/cloudflared/tunnel.json" +ingress: + - hostname: homeassistant.example.com + service: http://homeassistant:8123 + originRequest: + noTLSVerify: true +``` + +**Note**: If you use a custom `config.yml` file, `additional_hosts` and +`external_hostname` options will be ignored. Make sure to add all needed +services (e.g. a homeassistant ingress rule) inside `config.yml`. + ### Option: `log_level` The `log_level` option controls the level of log output by the addon and can @@ -299,3 +360,4 @@ SOFTWARE. [nginx_proxy_manager]: https://github.com/hassio-addons/addon-nginx-proxy-manager [tobias]: https://github.com/brenner-tobias [disablechunkedencoding]: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress#disablechunkedencoding +[cloudflared-ingress]: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress diff --git a/cloudflared/config.yaml b/cloudflared/config.yaml index d2a0823..9167f80 100644 --- a/cloudflared/config.yaml +++ b/cloudflared/config.yaml @@ -10,10 +10,14 @@ hassio_api: true hassio_role: manager image: ghcr.io/brenner-tobias/cloudflared/{arch} init: false +map: +- ssl:rw +- share:rw +- config:rw name: Cloudflared options: additional_hosts: [] - external_hostname: '' + external_hostname: null tunnel_name: homeassistant schema: additional_hosts: @@ -21,6 +25,8 @@ schema: hostname: str service: str catch_all_service: str? + custom_config: bool? + data_folder: list(config|share|ssl)? external_hostname: str log_level: list(trace|debug|info|notice|warning|error|fatal)? nginx_proxy_manager: bool? @@ -29,4 +35,4 @@ schema: tunnel_name: str slug: cloudflared url: https://github.com/brenner-tobias/addon-cloudflared/ -version: 0.4.3 +version: 0.5.0