From e0ebcbca6a6c80bc8d7ea79986f13df3766b82cc Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 18 Dec 2019 15:25:56 +0100 Subject: [PATCH] configurator: Removed direct access, simplified code, bump to 4.0 (#902) * configurator: Removed direct access from add-on * configurator: Extended list of default ingored patterns * configurator: Simplified run.sh * configurator: Bump version to 4.0 * configurator: Use the default Ingress port --- configurator/CHANGELOG.md | 6 ++++ configurator/Dockerfile | 9 ------ configurator/build.json | 3 +- configurator/config.json | 9 ++---- configurator/data/configurator.conf | 14 ++++----- configurator/data/run.sh | 48 +++++++++-------------------- 6 files changed, 30 insertions(+), 59 deletions(-) diff --git a/configurator/CHANGELOG.md b/configurator/CHANGELOG.md index 48af6d7..da1b06c 100644 --- a/configurator/CHANGELOG.md +++ b/configurator/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 4.0 + +- Removed direct access from the add-on, making the add-on Ingress only +- Extended list of default ignored patterns +- Simplified add-on code + ## 3.7 - Rename files via UI diff --git a/configurator/Dockerfile b/configurator/Dockerfile index d5afbb1..a39930a 100644 --- a/configurator/Dockerfile +++ b/configurator/Dockerfile @@ -3,18 +3,9 @@ FROM $BUILD_FROM # Setup base ARG CONFIGURATOR_VERSION -ARG HASSIO_AUTH_VERSION RUN apk add --no-cache \ git \ - lua-resty-http \ - nginx \ - nginx-mod-http-lua \ openssh-client \ - && git clone --depth 1 -b ${HASSIO_AUTH_VERSION} \ - "https://github.com/home-assistant/hassio-auth" \ - && cp -f hassio-auth/nginx-frontend/ha-auth.lua /etc/nginx/ \ - && cp -f hassio-auth/nginx-frontend/example/nginx-ingress.conf /etc/nginx/ \ - && rm -fr /usr/src/hassio-auth \ && pip install --no-cache-dir \ hass-configurator==${CONFIGURATOR_VERSION} diff --git a/configurator/build.json b/configurator/build.json index 4013bfe..2fd1f88 100644 --- a/configurator/build.json +++ b/configurator/build.json @@ -7,7 +7,6 @@ "i386": "homeassistant/i386-base-python:3.7" }, "args": { - "CONFIGURATOR_VERSION": "0.3.7", - "HASSIO_AUTH_VERSION": "4.0" + "CONFIGURATOR_VERSION": "0.3.7" } } diff --git a/configurator/config.json b/configurator/config.json index 9468f29..6c2a984 100644 --- a/configurator/config.json +++ b/configurator/config.json @@ -1,26 +1,21 @@ { "name": "Configurator", - "version": "3.7", + "version": "4.0", "slug": "configurator", "description": "Browser-based configuration file editor for Home Assistant", "url": "https://github.com/home-assistant/hassio-addons/tree/master/configurator", "arch": ["armhf", "armv7", "aarch64", "amd64", "i386"], "homeassistant": "0.91.1", "startup": "application", - "webui": "http://[HOST]:[PORT:8080]", "ingress": true, "panel_icon": "mdi:wrench", - "auth_api": true, "homeassistant_api": true, "boot": "auto", "map": ["backup:rw", "config:rw", "share:rw", "ssl:rw"], - "ports": { - "8080/tcp": null - }, "options": { "dirsfirst": false, "enforce_basepath": false, - "ignore_pattern": ["__pycache__"], + "ignore_pattern": ["__pycache__", ".cloud", ".storage", "deps"], "ssh_keys": [] }, "schema": { diff --git a/configurator/data/configurator.conf b/configurator/data/configurator.conf index eab9d16..e9f3bb4 100644 --- a/configurator/data/configurator.conf +++ b/configurator/data/configurator.conf @@ -1,23 +1,23 @@ { - "LISTENIP": "127.0.0.1", - "PORT": 80, + "LISTENIP": "0.0.0.0", + "PORT": 8099, "GIT": true, "BASEPATH": "/config", - "ENFORCE_BASEPATH": %%ENFORCE_BASEPATH%%, + "ENFORCE_BASEPATH": true, "SSL_CERTIFICATE": null, "SSL_KEY": null, "IGNORE_SSL": false, "HASS_API": "http://hassio/homeassistant/api/", "HASS_WS_API": null, - "HASS_API_PASSWORD": "%%TOKEN%%", + "HASS_API_PASSWORD": null, "USERNAME": null, "PASSWORD": null, - "ALLOWED_NETWORKS": [], + "ALLOWED_NETWORKS": ["172.30.32.2"], "ALLOWED_DOMAINS": [], "BANNED_IPS": [], "BANLIMIT": 0, - "IGNORE_PATTERN": %%IGNORE_PATTERN%%, - "DIRSFIRST": %%DIRSFIRST%%, + "IGNORE_PATTERN": [], + "DIRSFIRST": false, "SESAME": null, "SESAME_TOTP_SECRET": null, "VERIFY_HOSTNAME": null, diff --git a/configurator/data/run.sh b/configurator/data/run.sh index 703d4b3..e3d0467 100755 --- a/configurator/data/run.sh +++ b/configurator/data/run.sh @@ -3,8 +3,7 @@ set -e DIRSFIRST=$(bashio::config 'dirsfirst') ENFORCE_BASEPATH=$(bashio::config 'enforce_basepath') -IGNORE_PATTERN="$(bashio::jq "/data/options.json" ".ignore_pattern")" -WAIT_PIDS=() +IGNORE_PATTERN="$(bashio::config 'ignore_pattern | join(",")')" # If any SSH key files are defined in the configuration options, add them for use by git if bashio::config.has_value "ssh_keys"; then @@ -14,45 +13,26 @@ if bashio::config.has_value "ssh_keys"; then # Add the keys defined in the configuration options while read -r filename; do - if bashio::fs.file_exists "$filename"; then - bashio::log.info "Adding SSH private key file \"$filename\"" - ssh-add -q "$filename" + if bashio::fs.file_exists "${filename}"; then + bashio::log.info "Adding SSH private key file \"${filename}\"" + ssh-add -q "${filename}" else - bashio::log.error "SSH key file \"$filename\" not found" + bashio::log.error "SSH key file \"${filename}\" not found" fi done <<< "$(bashio::config 'ssh_keys')" # Disable strict host key checking mkdir -p ~/.ssh - echo "Host * - StrictHostKeyChecking no" > ~/.ssh/config + { + echo "Host *" + echo " StrictHostKeyChecking no" + } > ~/.ssh/config fi -# Setup and run Frontend -sed -i "s/%%PORT%%/8080/g" /etc/nginx/nginx-ingress.conf -sed -i "s/%%PORT_INGRESS%%/8099/g" /etc/nginx/nginx-ingress.conf - -nginx -c /etc/nginx/nginx-ingress.conf & -WAIT_PIDS+=($!) - # Setup and run configurator -sed -i "s/%%TOKEN%%/${HASSIO_TOKEN}/g" /etc/configurator.conf -sed -i "s/%%DIRSFIRST%%/${DIRSFIRST}/g" /etc/configurator.conf -sed -i "s/%%ENFORCE_BASEPATH%%/${ENFORCE_BASEPATH}/g" /etc/configurator.conf -sed -i "s/%%IGNORE_PATTERN%%/${IGNORE_PATTERN}/g" /etc/configurator.conf +export HC_HASS_API_PASSWORD="${HASSIO_TOKEN}" +export HC_DIRFIRST="${DIRSFIRST}" +export HC_ENFORECE_BASEPATH="${ENFORCE_BASEPATH}" +export HC_IGNORE_PATTERN="${IGNORE_PATTERN}" -hass-configurator /etc/configurator.conf & -WAIT_PIDS+=($!) - -# Register stop -function stop_addon() { - bashio::log.debug "Kill Processes..." - kill -15 "${WAIT_PIDS[@]}" - wait "${WAIT_PIDS[@]}" - bashio::log.debug "Done." -} -trap "stop_addon" SIGTERM SIGHUP - -# Wait until all is done -bashio::log.info "Add-on running" -wait "${WAIT_PIDS[@]}" +exec hass-configurator /etc/configurator.conf