Added sh compatible entry point

This commit is contained in:
2025-12-23 13:58:09 +02:00
parent 91b347620c
commit c59d68b9e1
+30 -46
View File
@@ -1,7 +1,8 @@
#!/bin/bash #!/bin/sh
set -eu
CONFIG_PATH="/data/options.json" CONFIG_PATH="/data/options.json"
N8N_PATH="$(jq --raw-output '.user_folder // empty' $CONFIG_PATH)" N8N_PATH="$(jq -r '.user_folder // empty' "$CONFIG_PATH")"
mkdir -p "${N8N_PATH}/.n8n/.cache" mkdir -p "${N8N_PATH}/.n8n/.cache"
@@ -9,42 +10,34 @@ mkdir -p "${N8N_PATH}/.n8n/.cache"
## USER PARAMETERS ## ## USER PARAMETERS ##
##################### #####################
# REQUIRED # Read env_vars_list line by line (NO arrays)
jq -r '.env_vars_list[]?' "$CONFIG_PATH" | while IFS= read -r element; do
# Extract the values from env_vars_list
values=$(jq -r '.env_vars_list | .[]' "$CONFIG_PATH")
# Convert the values to an array
IFS=$'\n' read -r -d '' -a array <<< "$values"
# Export keys and values
for element in "${array[@]}"
do
key="${element%%:*}" key="${element%%:*}"
value="${element#*:}" value="${element#*:}"
value=$(echo "$value" | xargs) # Remove leading and trailing whitespace
export "$key"="$value" # trim whitespace (POSIX)
echo "exported ${key}=${value}" value="$(printf '%s' "$value" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
export "$key=$value"
echo "exported $key=$value"
done done
export N8N_HOST="$(jq --raw-output '.n8n_host // empty' $CONFIG_PATH)" export N8N_HOST="$(jq -r '.n8n_host // empty' "$CONFIG_PATH")"
export N8N_PORT="$(jq --raw-output '.n8n_port // empty' $CONFIG_PATH)" export N8N_PORT="$(jq -r '.n8n_port // empty' "$CONFIG_PATH")"
export NODE_ENV="$(jq --raw-output '.node_env // empty' $CONFIG_PATH)" export NODE_ENV="$(jq -r '.node_env // empty' "$CONFIG_PATH")"
export WEBHOOK_TUNNEL_URL="$(jq --raw-output '.webhook_tunnel_url // empty' $CONFIG_PATH)" export WEBHOOK_TUNNEL_URL="$(jq -r '.webhook_tunnel_url // empty' "$CONFIG_PATH")"
export N8N_BASIC_AUTH_ACTIVE="$(jq --raw-output '.auth // empty' $CONFIG_PATH)" export N8N_BASIC_AUTH_ACTIVE="$(jq -r '.auth // empty' "$CONFIG_PATH")"
export N8N_BASIC_AUTH_USER="$(jq --raw-output '.auth_username // empty' $CONFIG_PATH)" export N8N_BASIC_AUTH_USER="$(jq -r '.auth_username // empty' "$CONFIG_PATH")"
export N8N_BASIC_AUTH_PASSWORD="$(jq --raw-output '.auth_password // empty' $CONFIG_PATH)" export N8N_BASIC_AUTH_PASSWORD="$(jq -r '.auth_password // empty' "$CONFIG_PATH")"
export GENERIC_TIMEZONE="$(jq --raw-output '.timezone // empty' $CONFIG_PATH)" export GENERIC_TIMEZONE="$(jq -r '.timezone // empty' "$CONFIG_PATH")"
export N8N_PROTOCOL="$(jq --raw-output '.protocol // empty' $CONFIG_PATH)" export N8N_PROTOCOL="$(jq -r '.protocol // empty' "$CONFIG_PATH")"
export N8N_SSL_CERT="/ssl/$(jq --raw-output '.certfile // empty' $CONFIG_PATH)" export N8N_SSL_CERT="/ssl/$(jq -r '.certfile // empty' "$CONFIG_PATH")"
export N8N_SSL_KEY="/ssl/$(jq --raw-output '.keyfile // empty' $CONFIG_PATH)" export N8N_SSL_KEY="/ssl/$(jq -r '.keyfile // empty' "$CONFIG_PATH")"
export N8N_ENCRYPTION_KEY="$(jq --raw-output '.encryption_key // empty' $CONFIG_PATH)" export N8N_ENCRYPTION_KEY="$(jq -r '.encryption_key // empty' "$CONFIG_PATH")"
export N8N_USER_FOLDER="${N8N_PATH}" export N8N_USER_FOLDER="$N8N_PATH"
export N8N_CMD_LINE="$(jq -r '.cmd_line_args // empty' "$CONFIG_PATH")"
export N8N_CMD_LINE="$(jq --raw-output '.cmd_line_args // empty' $CONFIG_PATH)" if [ -z "$N8N_BASIC_AUTH_USER" ] || [ -z "$N8N_BASIC_AUTH_ACTIVE" ]; then
if [ -z "${N8N_BASIC_AUTH_USER}" ] || [ -z "${N8N_BASIC_AUTH_ACTIVE}" ]; then
export N8N_BASIC_AUTH_ACTIVE=false export N8N_BASIC_AUTH_ACTIVE=false
unset N8N_BASIC_AUTH_USER unset N8N_BASIC_AUTH_USER
unset N8N_BASIC_AUTH_PASSWORD unset N8N_BASIC_AUTH_PASSWORD
@@ -54,20 +47,11 @@ fi
## MAIN ## ## MAIN ##
########### ###########
if [ "$#" -gt 0 ]; then # Fix ownership BEFORE exec
# Got started with arguments chown -R node /home/node || true
exec n8n "${N8N_CMD_LINE}"
else
# Got started without arguments
exec n8n start
fi
chown -R node /home/node
if [ "$#" -gt 0 ]; then if [ "$#" -gt 0 ]; then
# Got started with arguments exec su-exec node n8n $N8N_CMD_LINE
exec su-exec node "$@"
else else
# Got started without arguments exec su-exec node n8n start
exec su-exec node n8n
fi fi