mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-17 21:24:20 +01:00
configurator: Add git SSH support (#592)
* configurator: Add git SSH support Add "ssh_keys" option to the Configurator add-on to define SSH keys for use by git. * Bump version to 3.5
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 3.5
|
||||||
|
|
||||||
|
- Add support for SSH keys
|
||||||
|
|
||||||
## 3.4
|
## 3.4
|
||||||
|
|
||||||
- Adds documentation to add-on repository
|
- Adds documentation to add-on repository
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ FROM $BUILD_FROM
|
|||||||
ARG CONFIGURATOR_VERSION
|
ARG CONFIGURATOR_VERSION
|
||||||
ARG HASSIO_AUTH_VERSION
|
ARG HASSIO_AUTH_VERSION
|
||||||
RUN apk add --no-cache \
|
RUN apk add --no-cache \
|
||||||
git nginx nginx-mod-http-lua lua-resty-http \
|
git nginx nginx-mod-http-lua lua-resty-http openssh-client \
|
||||||
&& git clone --depth 1 -b ${HASSIO_AUTH_VERSION} \
|
&& git clone --depth 1 -b ${HASSIO_AUTH_VERSION} \
|
||||||
"https://github.com/home-assistant/hassio-auth" \
|
"https://github.com/home-assistant/hassio-auth" \
|
||||||
&& cp -f hassio-auth/nginx-frontend/ha-auth.lua /etc/nginx/ \
|
&& cp -f hassio-auth/nginx-frontend/ha-auth.lua /etc/nginx/ \
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ Add-on configuration:
|
|||||||
"enforce_basepath": false,
|
"enforce_basepath": false,
|
||||||
"ignore_pattern": [
|
"ignore_pattern": [
|
||||||
"__pycache__"
|
"__pycache__"
|
||||||
]
|
],
|
||||||
|
"ssh_keys": []
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -76,6 +77,10 @@ If set to `true`, access is limited to files within the `/config` directory.
|
|||||||
This option allows you to hide files and folders from the file browser tree.
|
This option allows you to hide files and folders from the file browser tree.
|
||||||
By default, it hides the `__pycache__` folders.
|
By default, it hides the `__pycache__` folders.
|
||||||
|
|
||||||
|
### Option: `ssh_keys` (required)
|
||||||
|
|
||||||
|
A list of filenames containing SSH private keys. These can be used to allow for access to remote git repositories.
|
||||||
|
|
||||||
## Known issues and limitations
|
## Known issues and limitations
|
||||||
|
|
||||||
- This add-on is, by default, configured for use with Hass.io Ingress. If you
|
- This add-on is, by default, configured for use with Hass.io Ingress. If you
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "Configurator",
|
"name": "Configurator",
|
||||||
"version": "3.4",
|
"version": "3.5",
|
||||||
"slug": "configurator",
|
"slug": "configurator",
|
||||||
"description": "Browser-based configuration file editor for Home Assistant",
|
"description": "Browser-based configuration file editor for Home Assistant",
|
||||||
"url": "https://home-assistant.io/addons/configurator",
|
"url": "https://home-assistant.io/addons/configurator",
|
||||||
@@ -33,14 +33,16 @@
|
|||||||
"enforce_basepath": false,
|
"enforce_basepath": false,
|
||||||
"ignore_pattern": [
|
"ignore_pattern": [
|
||||||
"__pycache__"
|
"__pycache__"
|
||||||
]
|
],
|
||||||
|
"ssh_keys": []
|
||||||
},
|
},
|
||||||
"schema": {
|
"schema": {
|
||||||
"dirsfirst": "bool",
|
"dirsfirst": "bool",
|
||||||
"enforce_basepath": "bool",
|
"enforce_basepath": "bool",
|
||||||
"ignore_pattern": [
|
"ignore_pattern": [
|
||||||
"str"
|
"str"
|
||||||
]
|
],
|
||||||
|
"ssh_keys": ["str"]
|
||||||
},
|
},
|
||||||
"image": "homeassistant/{arch}-addon-configurator"
|
"image": "homeassistant/{arch}-addon-configurator"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,28 @@ ENFORCE_BASEPATH=$(bashio::config 'enforce_basepath')
|
|||||||
IGNORE_PATTERN="$(bashio::jq "/data/options.json" ".ignore_pattern")"
|
IGNORE_PATTERN="$(bashio::jq "/data/options.json" ".ignore_pattern")"
|
||||||
WAIT_PIDS=()
|
WAIT_PIDS=()
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# Start the SSH agent
|
||||||
|
bashio::log.info "Starting SSH agent"
|
||||||
|
eval "$(ssh-agent -s)"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
else
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
|
||||||
# Setup and run Frontend
|
# Setup and run Frontend
|
||||||
sed -i "s/%%PORT%%/8080/g" /etc/nginx/nginx-ingress.conf
|
sed -i "s/%%PORT%%/8080/g" /etc/nginx/nginx-ingress.conf
|
||||||
sed -i "s/%%PORT_INGRESS%%/8099/g" /etc/nginx/nginx-ingress.conf
|
sed -i "s/%%PORT_INGRESS%%/8099/g" /etc/nginx/nginx-ingress.conf
|
||||||
|
|||||||
Reference in New Issue
Block a user