Files
hass-addons/hass-n8n/docker-entrypoint.sh
T

58 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
set -eu
CONFIG_PATH="/data/options.json"
N8N_PATH="$(jq -r '.user_folder // empty' "$CONFIG_PATH")"
mkdir -p "${N8N_PATH}/.n8n/.cache"
#####################
## USER PARAMETERS ##
#####################
# Read env_vars_list line by line (NO arrays)
jq -r '.env_vars_list[]?' "$CONFIG_PATH" | while IFS= read -r element; do
key="${element%%:*}"
value="${element#*:}"
# trim whitespace (POSIX)
value="$(printf '%s' "$value" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
export "$key=$value"
echo "exported $key=$value"
done
export N8N_HOST="$(jq -r '.n8n_host // empty' "$CONFIG_PATH")"
export N8N_PORT="$(jq -r '.n8n_port // empty' "$CONFIG_PATH")"
export NODE_ENV="$(jq -r '.node_env // empty' "$CONFIG_PATH")"
export WEBHOOK_TUNNEL_URL="$(jq -r '.webhook_tunnel_url // empty' "$CONFIG_PATH")"
export N8N_BASIC_AUTH_ACTIVE="$(jq -r '.auth // empty' "$CONFIG_PATH")"
export N8N_BASIC_AUTH_USER="$(jq -r '.auth_username // empty' "$CONFIG_PATH")"
export N8N_BASIC_AUTH_PASSWORD="$(jq -r '.auth_password // empty' "$CONFIG_PATH")"
export GENERIC_TIMEZONE="$(jq -r '.timezone // empty' "$CONFIG_PATH")"
export N8N_PROTOCOL="$(jq -r '.protocol // empty' "$CONFIG_PATH")"
export N8N_SSL_CERT="/ssl/$(jq -r '.certfile // empty' "$CONFIG_PATH")"
export N8N_SSL_KEY="/ssl/$(jq -r '.keyfile // empty' "$CONFIG_PATH")"
export N8N_ENCRYPTION_KEY="$(jq -r '.encryption_key // empty' "$CONFIG_PATH")"
export N8N_USER_FOLDER="$N8N_PATH"
export N8N_CMD_LINE="$(jq -r '.cmd_line_args // empty' "$CONFIG_PATH")"
export N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false
if [ -z "$N8N_BASIC_AUTH_USER" ] || [ -z "$N8N_BASIC_AUTH_ACTIVE" ]; then
export N8N_BASIC_AUTH_ACTIVE=false
unset N8N_BASIC_AUTH_USER
unset N8N_BASIC_AUTH_PASSWORD
fi
###########
## MAIN ##
###########
# Fix ownership BEFORE exec
chown -R node /home/node || true
if [ "$#" -gt 0 ]; then
exec su-exec node n8n $N8N_CMD_LINE
else
exec su-exec node n8n start
fi