mirror of
				https://github.com/casjaysdevdocker/tor
				synced 2025-10-30 20:02:25 -04:00 
			
		
		
		
	🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh rootfs/usr/local/etc/docker/init.d/01-tor-bridge.sh rootfs/usr/local/etc/docker/init.d/02-tor-relay.sh rootfs/usr/local/etc/docker/init.d/03-tor-server.sh rootfs/usr/local/etc/docker/init.d/09-unbound.sh rootfs/usr/local/etc/docker/init.d/98-privoxy.sh rootfs/usr/local/etc/docker/init.d/zz-nginx.sh
This commit is contained in:
		| @@ -22,7 +22,6 @@ | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html | # setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html | ||||||
| [ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}" | [ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}" | ||||||
| { [ "$DEBUGGER" = "on" ] || [ -f "/config/.debug" ]; } && echo "Enabling debugging" && set -xo pipefail -x$DEBUGGER_OPTIONS && export DEBUGGER="on" || set -o pipefail |  | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| __remove_extra_spaces() { sed 's/\( \)*/\1/g;s|^ ||g'; } | __remove_extra_spaces() { sed 's/\( \)*/\1/g;s|^ ||g'; } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   | |||||||
| @@ -18,10 +18,10 @@ | |||||||
| # @@sudo/root        :  no | # @@sudo/root        :  no | ||||||
| # @@Template         :  other/start-service | # @@Template         :  other/start-service | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317 | # shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317,SC2329 | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Exit if service is disabled | # Exit if service is disabled | ||||||
| if [ "$TOR_BRIDGE_ENABLED" != "yes" ]; then exit 0; fi | if [ "$TOR_BRIDGE_ENABLED" != "yes" ]; then SERVICE_DISABLED=yes && exit 0; fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # run trap command on exit | # run trap command on exit | ||||||
| trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | ||||||
|   | |||||||
| @@ -18,10 +18,10 @@ | |||||||
| # @@sudo/root        :  no | # @@sudo/root        :  no | ||||||
| # @@Template         :  other/start-service | # @@Template         :  other/start-service | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317 | # shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317,SC2329 | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Exit if service is disabled | # Exit if service is disabled | ||||||
| if [ "$TOR_RELAY_ENABLED" != "yes" ]; then exit 0; fi | if [ "$TOR_RELAY_ENABLED" != "yes" ]; then SERVICE_DISABLED=yes && exit 0; fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # run trap command on exit | # run trap command on exit | ||||||
| trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | ||||||
| @@ -38,19 +38,19 @@ SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # exit if __start_init_scripts function hasn't been Initialized | # exit if __start_init_scripts function hasn't been Initialized | ||||||
| if [ ! -f "/run/__start_init_scripts.pid" ]; then | if [ ! -f "/run/__start_init_scripts.pid" ]; then | ||||||
|   echo "__start_init_scripts function hasn't been Initialized" >&2 | 	echo "__start_init_scripts function hasn't been Initialized" >&2 | ||||||
|   SERVICE_IS_RUNNING="no" | 	SERVICE_IS_RUNNING="no" | ||||||
|   exit 1 | 	exit 1 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import the functions file | # import the functions file | ||||||
| if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | ||||||
|   . "/usr/local/etc/docker/functions/entrypoint.sh" | 	. "/usr/local/etc/docker/functions/entrypoint.sh" | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import variables | # import variables | ||||||
| for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | ||||||
|   [ -f "$set_env" ] && . "$set_env" | 	[ -f "$set_env" ] && . "$set_env" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | ||||||
| @@ -179,69 +179,69 @@ RANDOM_NICK="$(head -n50 '/dev/random' | tr -dc 'a-zA-Z' | tr -d '[:space:]\042\ | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom commands to run before copying to /config | # Custom commands to run before copying to /config | ||||||
| __run_precopy() { | __run_precopy() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | 	if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom prerun functions - IE setup WWW_ROOT_DIR | # Custom prerun functions - IE setup WWW_ROOT_DIR | ||||||
| __execute_prerun() { | __execute_prerun() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | 	if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Run any pre-execution checks | # Run any pre-execution checks | ||||||
| __run_pre_execute_checks() { | __run_pre_execute_checks() { | ||||||
|   # Set variables | 	# Set variables | ||||||
|   local exitStatus=0 | 	local exitStatus=0 | ||||||
|   local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | 	local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | ||||||
|   local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | 	local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | ||||||
|   __banner "$pre_execute_checks_MessageST" | 	__banner "$pre_execute_checks_MessageST" | ||||||
|   # Put command to execute in parentheses | 	# Put command to execute in parentheses | ||||||
|   { | 	{ | ||||||
|     true | 		true | ||||||
|   } | 	} | ||||||
|   exitStatus=$? | 	exitStatus=$? | ||||||
|   __banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | 	__banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | ||||||
|  |  | ||||||
|   # show exit message | 	# show exit message | ||||||
|   if [ $exitStatus -ne 0 ]; then | 	if [ $exitStatus -ne 0 ]; then | ||||||
|     echo "The pre-execution check has failed" >&2 | 		echo "The pre-execution check has failed" >&2 | ||||||
|     [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | 		[ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | ||||||
|     exit 1 | 		exit 1 | ||||||
|   fi | 	fi | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | 	if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitStatus | 	return $exitStatus | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __update_conf_files() { | __update_conf_files() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # delete files | 	# delete files | ||||||
|   #__rm "" | 	#__rm "" | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # custom commands | 	# custom commands | ||||||
|   chmod 600 $RUN_DIR | 	chmod 600 $RUN_DIR | ||||||
|   chown -Rf ${SERVICE_USER:-$RUNAS_USER}:${SERVICE_GROUP:-$RUNAS_USER} $RUN_DIR | 	chown -Rf ${SERVICE_USER:-$RUNAS_USER}:${SERVICE_GROUP:-$RUNAS_USER} $RUN_DIR | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # replace variables | 	# replace variables | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions | 	# define actions | ||||||
|   mkdir -p "$CONF_DIR/conf.d" | 	mkdir -p "$CONF_DIR/conf.d" | ||||||
|   cat <<EOF >"$CONF_DIR/relay.conf" | 	cat <<EOF >"$CONF_DIR/relay.conf" | ||||||
| ##### Relay | ##### Relay | ||||||
| RunAsDaemon 0 | RunAsDaemon 0 | ||||||
| HardwareAccel 1 | HardwareAccel 1 | ||||||
| @@ -294,92 +294,92 @@ ExitPolicy accept *:* | |||||||
| %include $CONF_DIR/conf.d/*.conf | %include $CONF_DIR/conf.d/*.conf | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   [ -f "$CONF_DIR/conf.d/default.conf" ] || touch "$CONF_DIR/conf.d/default.conf" | 	[ -f "$CONF_DIR/conf.d/default.conf" ] || touch "$CONF_DIR/conf.d/default.conf" | ||||||
|   if [ "$TOR_DEBUG" = "yes" ]; then | 	if [ "$TOR_DEBUG" = "yes" ]; then | ||||||
|     sed -i 's|#Log debug|Log debug|g' "$CONF_DIR/relay.conf" | 		sed -i 's|#Log debug|Log debug|g' "$CONF_DIR/relay.conf" | ||||||
|   fi | 	fi | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | 	if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run before executing | # function to run before executing | ||||||
| __pre_execute() { | __pre_execute() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute if directories is empty | 	# execute if directories is empty | ||||||
|   # __is_dir_empty "$CONF_DIR" && true | 	# __is_dir_empty "$CONF_DIR" && true | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions to run after copying to /config | 	# define actions to run after copying to /config | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # unset unneeded variables | 	# unset unneeded variables | ||||||
|   unset sysname | 	unset sysname | ||||||
|   # Lets wait a few seconds before continuing | 	# Lets wait a few seconds before continuing | ||||||
|   sleep 5 | 	sleep 5 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | 	if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run after executing | # function to run after executing | ||||||
| __post_execute() { | __post_execute() { | ||||||
|   local pid=""                                                    # init pid var | 	local pid=""                                                    # init pid var | ||||||
|   local retVal=0                                                  # set default exit code | 	local retVal=0                                                  # set default exit code | ||||||
|   local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | 	local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | ||||||
|   local waitTime=$((ctime * 60))                                  # convert minutes to seconds | 	local waitTime=$((ctime * 60))                                  # convert minutes to seconds | ||||||
|   local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | 	local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | ||||||
|   local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | 	local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | ||||||
|   # wait | 	# wait | ||||||
|   sleep $waitTime | 	sleep $waitTime | ||||||
|   # execute commands after waiting | 	# execute commands after waiting | ||||||
|   ( | 	( | ||||||
|     # show message | 		# show message | ||||||
|     __banner "$postMessageST" | 		__banner "$postMessageST" | ||||||
|     # commands to execute | 		# commands to execute | ||||||
|     sleep 5 | 		sleep 5 | ||||||
|     # show exit message | 		# show exit message | ||||||
|     __banner "$postMessageEnd: Status $retVal" | 		__banner "$postMessageEnd: Status $retVal" | ||||||
|   ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | 	) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | ||||||
|   pid=$! | 	pid=$! | ||||||
|   ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | 	ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | 	if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $retVal | 	return $retVal | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __pre_message() { | __pre_message() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   [ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | 	[ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | 	if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to setup ssl support | # use this function to setup ssl support | ||||||
| __update_ssl_conf() { | __update_ssl_conf() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | 	if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | ||||||
|   # set exitCode | 	# set exitCode | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| __create_service_env() { | __create_service_env() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | ||||||
|     cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | 		cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # root/admin user info [password/random] | # root/admin user info [password/random] | ||||||
| #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$TOR_ROOT_USER_NAME}"   # root user name | #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$TOR_ROOT_USER_NAME}"   # root user name | ||||||
| @@ -394,84 +394,84 @@ __create_service_env() { | |||||||
| #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   fi | 	fi | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_precopy_local() { true; } | 		__run_precopy_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __execute_prerun_local() { true; } | 		__execute_prerun_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_pre_execute_checks_local() { true; } | 		__run_pre_execute_checks_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_conf_files_local() { true; } | 		__update_conf_files_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_execute_local() { true; } | 		__pre_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __post_execute_local() { true; } | 		__post_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_message_local() { true; } | 		__pre_message_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_ssl_conf_local() { true; } | 		__update_ssl_conf_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   fi | 	fi | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # script to start server | # script to start server | ||||||
| __run_start_script() { | __run_start_script() { | ||||||
|   local runExitCode=0 | 	local runExitCode=0 | ||||||
|   local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | 	local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | ||||||
|   local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | 	local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | ||||||
|   local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | 	local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | ||||||
|   local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | 	local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | ||||||
|   local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | 	local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | ||||||
|   local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | 	local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | ||||||
|   local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | 	local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | ||||||
|   local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | 	local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | ||||||
|   local path="$(eval echo "$PATH")"                              # expand variables | 	local path="$(eval echo "$PATH")"                              # expand variables | ||||||
|   local message="$(eval echo "")"                                # expand variables | 	local message="$(eval echo "")"                                # expand variables | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   [ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | 	[ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | ||||||
|   # | 	# | ||||||
|   if [ -z "$cmd" ]; then | 	if [ -z "$cmd" ]; then | ||||||
|     __post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | 		__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | ||||||
|     retVal=$? | 		retVal=$? | ||||||
|     echo "Initializing $SCRIPT_NAME has completed" | 		echo "Initializing $SCRIPT_NAME has completed" | ||||||
|     exit $retVal | 		exit $retVal | ||||||
|   else | 	else | ||||||
|     # ensure the command exists | 		# ensure the command exists | ||||||
|     if [ ! -x "$cmd" ]; then | 		if [ ! -x "$cmd" ]; then | ||||||
|       echo "$name is not a valid executable" | 			echo "$name is not a valid executable" | ||||||
|       return 2 | 			return 2 | ||||||
|     fi | 		fi | ||||||
|     # check and exit if already running | 		# check and exit if already running | ||||||
|     if __proc_check "$name" || __proc_check "$cmd"; then | 		if __proc_check "$name" || __proc_check "$cmd"; then | ||||||
|       echo "$name is already running" >&2 | 			echo "$name is already running" >&2 | ||||||
|       return 0 | 			return 0 | ||||||
|     else | 		else | ||||||
|       # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 			# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|       # show message if env exists | 			# show message if env exists | ||||||
|       if [ -n "$cmd" ]; then | 			if [ -n "$cmd" ]; then | ||||||
|         [ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | 				[ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | ||||||
|         [ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | 				[ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | ||||||
|       fi | 			fi | ||||||
|       if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | 			if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | ||||||
|         export cmd_exec="$pre $cmd $args" | 				export cmd_exec="$pre $cmd $args" | ||||||
|         message="Starting service: $name $args through $pre" | 				message="Starting service: $name $args through $pre" | ||||||
|       else | 			else | ||||||
|         export cmd_exec="$cmd $args" | 				export cmd_exec="$cmd $args" | ||||||
|         message="Starting service: $name $args" | 				message="Starting service: $name $args" | ||||||
|       fi | 			fi | ||||||
|       [ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | 			[ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | ||||||
|       echo "$message" | tee -a -p "/data/logs/init.txt" | 			echo "$message" | tee -a -p "/data/logs/init.txt" | ||||||
|       su_cmd touch "$SERVICE_PID_FILE" | 			su_cmd touch "$SERVICE_PID_FILE" | ||||||
|       if [ "$RESET_ENV" = "yes" ]; then | 			if [ "$RESET_ENV" = "yes" ]; then | ||||||
|         env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | 				env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | ||||||
|         execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | 				execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -490,11 +490,11 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       else | 			else | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           execute_command="$(__trim "$su_exec $cmd_exec")" | 					execute_command="$(__trim "$su_exec $cmd_exec")" | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -513,36 +513,36 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       fi | 			fi | ||||||
|     fi | 		fi | ||||||
|     [ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | 		[ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | ||||||
|     [ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | 		[ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | ||||||
|     runExitCode=$? | 		runExitCode=$? | ||||||
|   fi | 	fi | ||||||
|   return $runExitCode | 	return $runExitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # username and password actions | # username and password actions | ||||||
| __run_secure_function() { | __run_secure_function() { | ||||||
|   local filesperms | 	local filesperms | ||||||
|   if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | 	if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | ||||||
|     for filesperms in "${USER_FILE_PREFIX}"/*; do | 		for filesperms in "${USER_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | 	if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | ||||||
|     for filesperms in "${ROOT_FILE_PREFIX}"/*; do | 		for filesperms in "${ROOT_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   unset filesperms | 	unset filesperms | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Allow ENV_ variable - Import env file | # Allow ENV_ variable - Import env file | ||||||
| @@ -576,68 +576,68 @@ __check_service "$1" && SERVICE_IS_RUNNING=yes | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Database env | # Database env | ||||||
| if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | ||||||
|   RESET_ENV="no" | 	RESET_ENV="no" | ||||||
|   DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | 	DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | ||||||
|   DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | 	DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | ||||||
|   DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | 	DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | ||||||
|   DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | 	DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | ||||||
|   DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | 	DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | ||||||
|   if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | 	if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | ||||||
|     echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | 		echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | 	if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | ||||||
|     echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | 		echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | ||||||
|   fi | 	fi | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | ||||||
| if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | ||||||
| elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | ||||||
| elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | ||||||
| elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | ||||||
| elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | ||||||
| elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | ||||||
| elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | 	[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | ||||||
|   chmod 777 "$DATABASE_DIR" | 	chmod 777 "$DATABASE_DIR" | ||||||
| fi | fi | ||||||
| [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| @@ -710,7 +710,7 @@ __run_precopy | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Copy /config to /etc | # Copy /config to /etc | ||||||
| for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | ||||||
|   __initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | 	__initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Replace variables | # Replace variables | ||||||
| @@ -734,15 +734,15 @@ __run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" " | |||||||
| __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | ||||||
| errorCode=$? | errorCode=$? | ||||||
| if [ -n "$EXEC_CMD_BIN" ]; then | if [ -n "$EXEC_CMD_BIN" ]; then | ||||||
|   if [ "$errorCode" -eq 0 ]; then | 	if [ "$errorCode" -eq 0 ]; then | ||||||
|     SERVICE_EXIT_CODE=0 | 		SERVICE_EXIT_CODE=0 | ||||||
|     SERVICE_IS_RUNNING="yes" | 		SERVICE_IS_RUNNING="yes" | ||||||
|   else | 	else | ||||||
|     SERVICE_EXIT_CODE=$errorCode | 		SERVICE_EXIT_CODE=$errorCode | ||||||
|     SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | 		SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | ||||||
|     [ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | 		[ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | ||||||
|   fi | 	fi | ||||||
|   SERVICE_EXIT_CODE=0 | 	SERVICE_EXIT_CODE=0 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # start the post execute function in background | # start the post execute function in background | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # @@sudo/root        :  no | # @@sudo/root        :  no | ||||||
| # @@Template         :  other/start-service | # @@Template         :  other/start-service | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317 | # shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317,SC2329 | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # run trap command on exit | # run trap command on exit | ||||||
| trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | ||||||
| @@ -35,19 +35,19 @@ SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # exit if __start_init_scripts function hasn't been Initialized | # exit if __start_init_scripts function hasn't been Initialized | ||||||
| if [ ! -f "/run/__start_init_scripts.pid" ]; then | if [ ! -f "/run/__start_init_scripts.pid" ]; then | ||||||
|   echo "__start_init_scripts function hasn't been Initialized" >&2 | 	echo "__start_init_scripts function hasn't been Initialized" >&2 | ||||||
|   SERVICE_IS_RUNNING="no" | 	SERVICE_IS_RUNNING="no" | ||||||
|   exit 1 | 	exit 1 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import the functions file | # import the functions file | ||||||
| if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | ||||||
|   . "/usr/local/etc/docker/functions/entrypoint.sh" | 	. "/usr/local/etc/docker/functions/entrypoint.sh" | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import variables | # import variables | ||||||
| for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | ||||||
|   [ -f "$set_env" ] && . "$set_env" | 	[ -f "$set_env" ] && . "$set_env" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | ||||||
| @@ -176,68 +176,68 @@ RANDOM_NICK="$(head -n50 '/dev/random' | tr -dc 'a-zA-Z' | tr -d '[:space:]\042\ | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom commands to run before copying to /config | # Custom commands to run before copying to /config | ||||||
| __run_precopy() { | __run_precopy() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | 	if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom prerun functions - IE setup WWW_ROOT_DIR | # Custom prerun functions - IE setup WWW_ROOT_DIR | ||||||
| __execute_prerun() { | __execute_prerun() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|   touch "/tmp/init_tor_services" | 	touch "/tmp/init_tor_services" | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | 	if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Run any pre-execution checks | # Run any pre-execution checks | ||||||
| __run_pre_execute_checks() { | __run_pre_execute_checks() { | ||||||
|   # Set variables | 	# Set variables | ||||||
|   local exitStatus=0 | 	local exitStatus=0 | ||||||
|   local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | 	local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | ||||||
|   local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | 	local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | ||||||
|   __banner "$pre_execute_checks_MessageST" | 	__banner "$pre_execute_checks_MessageST" | ||||||
|   # Put command to execute in parentheses | 	# Put command to execute in parentheses | ||||||
|   { | 	{ | ||||||
|     true | 		true | ||||||
|   } | 	} | ||||||
|   exitStatus=$? | 	exitStatus=$? | ||||||
|   __banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | 	__banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | ||||||
|  |  | ||||||
|   # show exit message | 	# show exit message | ||||||
|   if [ $exitStatus -ne 0 ]; then | 	if [ $exitStatus -ne 0 ]; then | ||||||
|     echo "The pre-execution check has failed" >&2 | 		echo "The pre-execution check has failed" >&2 | ||||||
|     [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | 		[ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | ||||||
|     exit 1 | 		exit 1 | ||||||
|   fi | 	fi | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | 	if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitStatus | 	return $exitStatus | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __update_conf_files() { | __update_conf_files() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # delete files | 	# delete files | ||||||
|   __rm "$CONF_DIR/server.conf" | 	__rm "$CONF_DIR/server.conf" | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # custom commands | 	# custom commands | ||||||
|   chmod 600 $RUN_DIR | 	chmod 600 $RUN_DIR | ||||||
|   chown -Rf ${SERVICE_USER:-$RUNAS_USER}:${SERVICE_GROUP:-$RUNAS_USER} $RUN_DIR | 	chown -Rf ${SERVICE_USER:-$RUNAS_USER}:${SERVICE_GROUP:-$RUNAS_USER} $RUN_DIR | ||||||
|   mkdir -p "/run/tor/sites" && chmod 777 "/run/tor/sites" | 	mkdir -p "/run/tor/sites" && chmod 777 "/run/tor/sites" | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # replace variables | 	# replace variables | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   cat <<EOF >>"$CONF_DIR/server.conf" | 	cat <<EOF >>"$CONF_DIR/server.conf" | ||||||
| ##### Server | ##### Server | ||||||
| RunAsDaemon 0 | RunAsDaemon 0 | ||||||
| HardwareAccel 1 | HardwareAccel 1 | ||||||
| @@ -289,11 +289,11 @@ DisableAllSwap 1 | |||||||
| ExcludeNodes {ru},{cn},{ir},{kp},{sy} | ExcludeNodes {ru},{cn},{ir},{kp},{sy} | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   # define actions | 	# define actions | ||||||
|   if [ "$TOR_DNS_ENABLED" = "yes" ]; then | 	if [ "$TOR_DNS_ENABLED" = "yes" ]; then | ||||||
|     SHOW_HIDDEN_HOSTNAMES=yes | 		SHOW_HIDDEN_HOSTNAMES=yes | ||||||
|     mkdir -p "$CONF_DIR/conf.d" | 		mkdir -p "$CONF_DIR/conf.d" | ||||||
|     cat <<EOF >>"$CONF_DIR/server.conf" | 		cat <<EOF >>"$CONF_DIR/server.conf" | ||||||
| #### dns forwarder | #### dns forwarder | ||||||
| Log notice file $LOG_DIR/dns.log | Log notice file $LOG_DIR/dns.log | ||||||
| DNSPort 0.0.0.0:8053 | DNSPort 0.0.0.0:8053 | ||||||
| @@ -302,137 +302,137 @@ AutomapHostsOnResolve 1 | |||||||
| AutomapHostsSuffixes .exit,.onion | AutomapHostsSuffixes .exit,.onion | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   fi | 	fi | ||||||
|  |  | ||||||
|   if [ "$TOR_HIDDEN_ENABLED" = "yes" ]; then | 	if [ "$TOR_HIDDEN_ENABLED" = "yes" ]; then | ||||||
|     mkdir -p "$CONF_DIR/hidden.d" | 		mkdir -p "$CONF_DIR/hidden.d" | ||||||
|     mkdir -p "$DATA_DIR/services" | 		mkdir -p "$DATA_DIR/services" | ||||||
|     chmod 700 "$DATA_DIR/services" | 		chmod 700 "$DATA_DIR/services" | ||||||
|     cat <<EOF >>"$CONF_DIR/server.conf" | 		cat <<EOF >>"$CONF_DIR/server.conf" | ||||||
| #### hidden services | #### hidden services | ||||||
| HiddenServiceDir $DATA_DIR/services/default | HiddenServiceDir $DATA_DIR/services/default | ||||||
| HiddenServicePort 80 127.0.0.1:80 | HiddenServicePort 80 127.0.0.1:80 | ||||||
| %include $CONF_DIR/hidden.d/*.conf | %include $CONF_DIR/hidden.d/*.conf | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   fi | 	fi | ||||||
|  |  | ||||||
|   cat <<EOF >>"$CONF_DIR/server.conf" | 	cat <<EOF >>"$CONF_DIR/server.conf" | ||||||
| ##### include configurations | ##### include configurations | ||||||
| %include $CONF_DIR/conf.d/*.conf | %include $CONF_DIR/conf.d/*.conf | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   if [ "$TOR_DEBUG" = "yes" ]; then | 	if [ "$TOR_DEBUG" = "yes" ]; then | ||||||
|     sed -i 's|#Log debug|Log debug|g' "$CONF_DIR/server.conf" | 		sed -i 's|#Log debug|Log debug|g' "$CONF_DIR/server.conf" | ||||||
|   fi | 	fi | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | 	if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run before executing | # function to run before executing | ||||||
| __pre_execute() { | __pre_execute() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute if directories is empty | 	# execute if directories is empty | ||||||
|   # __is_dir_empty "$CONF_DIR" && true | 	# __is_dir_empty "$CONF_DIR" && true | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions to run after copying to /config | 	# define actions to run after copying to /config | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # unset unneeded variables | 	# unset unneeded variables | ||||||
|   unset sysname | 	unset sysname | ||||||
|   # Lets wait a few seconds before continuing | 	# Lets wait a few seconds before continuing | ||||||
|   sleep 5 | 	sleep 5 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | 	if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run after executing | # function to run after executing | ||||||
| __post_execute() { | __post_execute() { | ||||||
|   local pid=""                                                    # init pid var | 	local pid=""                                                    # init pid var | ||||||
|   local retVal=0                                                  # set default exit code | 	local retVal=0                                                  # set default exit code | ||||||
|   local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | 	local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | ||||||
|   local waitTime=$((ctime * 60))                                  # convert minutes to seconds | 	local waitTime=$((ctime * 60))                                  # convert minutes to seconds | ||||||
|   local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | 	local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | ||||||
|   local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | 	local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | ||||||
|   # wait | 	# wait | ||||||
|   sleep $waitTime | 	sleep $waitTime | ||||||
|   # execute commands after waiting | 	# execute commands after waiting | ||||||
|   ( | 	( | ||||||
|     # commands to execute | 		# commands to execute | ||||||
|     while :; do | 		while :; do | ||||||
|       if pgrep unbound >/dev/null 2>&1; then | 			if pgrep unbound >/dev/null 2>&1; then | ||||||
|         break | 				break | ||||||
|       else | 			else | ||||||
|         sleep 10 | 				sleep 10 | ||||||
|       fi | 			fi | ||||||
|     done | 		done | ||||||
|     # show message | 		# show message | ||||||
|     __banner "$postMessageST" | 		__banner "$postMessageST" | ||||||
|     if [ -d "/data/htdocs/www" ]; then | 		if [ -d "/data/htdocs/www" ]; then | ||||||
|       WWW_ROOT_DIR="/data/htdocs/www" | 			WWW_ROOT_DIR="/data/htdocs/www" | ||||||
|     fi | 		fi | ||||||
|     if [ -d "$DATA_DIR/services" ]; then | 		if [ -d "$DATA_DIR/services" ]; then | ||||||
|       echo "Begin current hidden services"htdocs | 			echo "Begin current hidden services"htdocs | ||||||
|       [ -f "$WWW_ROOT_DIR/hostnames.html" ] && rm -f "$WWW_ROOT_DIR/hostnames.html" | 			[ -f "$WWW_ROOT_DIR/hostnames.html" ] && rm -f "$WWW_ROOT_DIR/hostnames.html" | ||||||
|       for host in "$DATA_DIR/services"/*/hostname; do | 			for host in "$DATA_DIR/services"/*/hostname; do | ||||||
|         d="$(dirname -- $host)" | 				d="$(dirname -- $host)" | ||||||
|         name="$(basename "$d")" | 				name="$(basename "$d")" | ||||||
|         url="$(<"$host")" | 				url="$(<"$host")" | ||||||
|         site="$(echo "$url" | sed 's|\.onion$||g')" | 				site="$(echo "$url" | sed 's|\.onion$||g')" | ||||||
|         echo "$name: $url" | 				echo "$name: $url" | ||||||
|         touch "/run/tor/sites/$site" | 				touch "/run/tor/sites/$site" | ||||||
|         echo '<a href="http://'$url'">'$name'</a><br />' >>"$WWW_ROOT_DIR/hostnames.html" | 				echo '<a href="http://'$url'">'$name'</a><br />' >>"$WWW_ROOT_DIR/hostnames.html" | ||||||
|         if [ "$name" = "default" ]; then echo "$site" >"$WWW_ROOT_DIR/default_host.txt"; fi | 				if [ "$name" = "default" ]; then echo "$site" >"$WWW_ROOT_DIR/default_host.txt"; fi | ||||||
|       done | 			done | ||||||
|       echo "End current hidden services" | 			echo "End current hidden services" | ||||||
|     fi | 		fi | ||||||
|     [ -f "/tmp/init_tor_services" ] && rm -Rf "/tmp/init_tor_services" | 		[ -f "/tmp/init_tor_services" ] && rm -Rf "/tmp/init_tor_services" | ||||||
|     (while :; do sleep 10 && __pgrep $EXEC_CMD_BIN >/dev/null || eval $EXEC_CMD_BIN $EXEC_CMD_ARGS >/dev/null; done &) | 		(while :; do sleep 10 && __pgrep $EXEC_CMD_BIN >/dev/null || eval $EXEC_CMD_BIN $EXEC_CMD_ARGS >/dev/null; done &) | ||||||
|     # show exit message | 		# show exit message | ||||||
|     __banner "$postMessageEnd: Status $retVal" | 		__banner "$postMessageEnd: Status $retVal" | ||||||
|   ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | 	) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | ||||||
|   pid=$! | 	pid=$! | ||||||
|   ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | 	ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | 	if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $retVal | 	return $retVal | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __pre_message() { | __pre_message() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   [ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | 	[ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | 	if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to setup ssl support | # use this function to setup ssl support | ||||||
| __update_ssl_conf() { | __update_ssl_conf() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | 	if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | ||||||
|   # set exitCode | 	# set exitCode | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| __create_service_env() { | __create_service_env() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | ||||||
|     cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | 		cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # root/admin user info [password/random] | # root/admin user info [password/random] | ||||||
| #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$TOR_ROOT_USER_NAME}"   # root user name | #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$TOR_ROOT_USER_NAME}"   # root user name | ||||||
| @@ -447,84 +447,84 @@ __create_service_env() { | |||||||
| #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   fi | 	fi | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_precopy_local() { true; } | 		__run_precopy_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __execute_prerun_local() { true; } | 		__execute_prerun_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_pre_execute_checks_local() { true; } | 		__run_pre_execute_checks_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_conf_files_local() { true; } | 		__update_conf_files_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_execute_local() { true; } | 		__pre_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __post_execute_local() { true; } | 		__post_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_message_local() { true; } | 		__pre_message_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_ssl_conf_local() { true; } | 		__update_ssl_conf_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   fi | 	fi | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # script to start server | # script to start server | ||||||
| __run_start_script() { | __run_start_script() { | ||||||
|   local runExitCode=0 | 	local runExitCode=0 | ||||||
|   local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | 	local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | ||||||
|   local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | 	local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | ||||||
|   local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | 	local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | ||||||
|   local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | 	local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | ||||||
|   local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | 	local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | ||||||
|   local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | 	local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | ||||||
|   local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | 	local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | ||||||
|   local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | 	local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | ||||||
|   local path="$(eval echo "$PATH")"                              # expand variables | 	local path="$(eval echo "$PATH")"                              # expand variables | ||||||
|   local message="$(eval echo "")"                                # expand variables | 	local message="$(eval echo "")"                                # expand variables | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   [ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | 	[ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | ||||||
|   # | 	# | ||||||
|   if [ -z "$cmd" ]; then | 	if [ -z "$cmd" ]; then | ||||||
|     __post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | 		__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | ||||||
|     retVal=$? | 		retVal=$? | ||||||
|     echo "Initializing $SCRIPT_NAME has completed" | 		echo "Initializing $SCRIPT_NAME has completed" | ||||||
|     exit $retVal | 		exit $retVal | ||||||
|   else | 	else | ||||||
|     # ensure the command exists | 		# ensure the command exists | ||||||
|     if [ ! -x "$cmd" ]; then | 		if [ ! -x "$cmd" ]; then | ||||||
|       echo "$name is not a valid executable" | 			echo "$name is not a valid executable" | ||||||
|       return 2 | 			return 2 | ||||||
|     fi | 		fi | ||||||
|     # check and exit if already running | 		# check and exit if already running | ||||||
|     if __proc_check "$name" || __proc_check "$cmd"; then | 		if __proc_check "$name" || __proc_check "$cmd"; then | ||||||
|       echo "$name is already running" >&2 | 			echo "$name is already running" >&2 | ||||||
|       return 0 | 			return 0 | ||||||
|     else | 		else | ||||||
|       # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 			# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|       # show message if env exists | 			# show message if env exists | ||||||
|       if [ -n "$cmd" ]; then | 			if [ -n "$cmd" ]; then | ||||||
|         [ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | 				[ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | ||||||
|         [ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | 				[ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | ||||||
|       fi | 			fi | ||||||
|       if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | 			if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | ||||||
|         export cmd_exec="$pre $cmd $args" | 				export cmd_exec="$pre $cmd $args" | ||||||
|         message="Starting service: $name $args through $pre" | 				message="Starting service: $name $args through $pre" | ||||||
|       else | 			else | ||||||
|         export cmd_exec="$cmd $args" | 				export cmd_exec="$cmd $args" | ||||||
|         message="Starting service: $name $args" | 				message="Starting service: $name $args" | ||||||
|       fi | 			fi | ||||||
|       [ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | 			[ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | ||||||
|       echo "$message" | tee -a -p "/data/logs/init.txt" | 			echo "$message" | tee -a -p "/data/logs/init.txt" | ||||||
|       su_cmd touch "$SERVICE_PID_FILE" | 			su_cmd touch "$SERVICE_PID_FILE" | ||||||
|       if [ "$RESET_ENV" = "yes" ]; then | 			if [ "$RESET_ENV" = "yes" ]; then | ||||||
|         env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | 				env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | ||||||
|         execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | 				execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -543,11 +543,11 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       else | 			else | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           execute_command="$(__trim "$su_exec $cmd_exec")" | 					execute_command="$(__trim "$su_exec $cmd_exec")" | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -566,36 +566,36 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       fi | 			fi | ||||||
|     fi | 		fi | ||||||
|     [ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | 		[ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | ||||||
|     [ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | 		[ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | ||||||
|     runExitCode=$? | 		runExitCode=$? | ||||||
|   fi | 	fi | ||||||
|   return $runExitCode | 	return $runExitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # username and password actions | # username and password actions | ||||||
| __run_secure_function() { | __run_secure_function() { | ||||||
|   local filesperms | 	local filesperms | ||||||
|   if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | 	if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | ||||||
|     for filesperms in "${USER_FILE_PREFIX}"/*; do | 		for filesperms in "${USER_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | 	if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | ||||||
|     for filesperms in "${ROOT_FILE_PREFIX}"/*; do | 		for filesperms in "${ROOT_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   unset filesperms | 	unset filesperms | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Allow ENV_ variable - Import env file | # Allow ENV_ variable - Import env file | ||||||
| @@ -629,68 +629,68 @@ __check_service "$1" && SERVICE_IS_RUNNING=yes | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Database env | # Database env | ||||||
| if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | ||||||
|   RESET_ENV="no" | 	RESET_ENV="no" | ||||||
|   DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | 	DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | ||||||
|   DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | 	DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | ||||||
|   DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | 	DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | ||||||
|   DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | 	DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | ||||||
|   DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | 	DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | ||||||
|   if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | 	if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | ||||||
|     echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | 		echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | 	if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | ||||||
|     echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | 		echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | ||||||
|   fi | 	fi | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | ||||||
| if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | ||||||
| elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | ||||||
| elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | ||||||
| elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | ||||||
| elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | ||||||
| elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | ||||||
| elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | 	[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | ||||||
|   chmod 777 "$DATABASE_DIR" | 	chmod 777 "$DATABASE_DIR" | ||||||
| fi | fi | ||||||
| [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| @@ -763,7 +763,7 @@ __run_precopy | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Copy /config to /etc | # Copy /config to /etc | ||||||
| for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | ||||||
|   __initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | 	__initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Replace variables | # Replace variables | ||||||
| @@ -787,15 +787,15 @@ __run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" " | |||||||
| __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | ||||||
| errorCode=$? | errorCode=$? | ||||||
| if [ -n "$EXEC_CMD_BIN" ]; then | if [ -n "$EXEC_CMD_BIN" ]; then | ||||||
|   if [ "$errorCode" -eq 0 ]; then | 	if [ "$errorCode" -eq 0 ]; then | ||||||
|     SERVICE_EXIT_CODE=0 | 		SERVICE_EXIT_CODE=0 | ||||||
|     SERVICE_IS_RUNNING="yes" | 		SERVICE_IS_RUNNING="yes" | ||||||
|   else | 	else | ||||||
|     SERVICE_EXIT_CODE=$errorCode | 		SERVICE_EXIT_CODE=$errorCode | ||||||
|     SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | 		SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | ||||||
|     [ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | 		[ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | ||||||
|   fi | 	fi | ||||||
|   SERVICE_EXIT_CODE=0 | 	SERVICE_EXIT_CODE=0 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # start the post execute function in background | # start the post execute function in background | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # @@sudo/root        :  no | # @@sudo/root        :  no | ||||||
| # @@Template         :  other/start-service | # @@Template         :  other/start-service | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317 | # shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317,SC2329 | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # run trap command on exit | # run trap command on exit | ||||||
| trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | ||||||
| @@ -35,19 +35,19 @@ SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # exit if __start_init_scripts function hasn't been Initialized | # exit if __start_init_scripts function hasn't been Initialized | ||||||
| if [ ! -f "/run/__start_init_scripts.pid" ]; then | if [ ! -f "/run/__start_init_scripts.pid" ]; then | ||||||
|   echo "__start_init_scripts function hasn't been Initialized" >&2 | 	echo "__start_init_scripts function hasn't been Initialized" >&2 | ||||||
|   SERVICE_IS_RUNNING="no" | 	SERVICE_IS_RUNNING="no" | ||||||
|   exit 1 | 	exit 1 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import the functions file | # import the functions file | ||||||
| if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | ||||||
|   . "/usr/local/etc/docker/functions/entrypoint.sh" | 	. "/usr/local/etc/docker/functions/entrypoint.sh" | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import variables | # import variables | ||||||
| for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | ||||||
|   [ -f "$set_env" ] && . "$set_env" | 	[ -f "$set_env" ] && . "$set_env" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | ||||||
| @@ -172,151 +172,151 @@ CMD_ENV="" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom commands to run before copying to /config | # Custom commands to run before copying to /config | ||||||
| __run_precopy() { | __run_precopy() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | 	if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom prerun functions - IE setup WWW_ROOT_DIR | # Custom prerun functions - IE setup WWW_ROOT_DIR | ||||||
| __execute_prerun() { | __execute_prerun() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | 	if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Run any pre-execution checks | # Run any pre-execution checks | ||||||
| __run_pre_execute_checks() { | __run_pre_execute_checks() { | ||||||
|   # Set variables | 	# Set variables | ||||||
|   local exitStatus=0 | 	local exitStatus=0 | ||||||
|   local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | 	local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | ||||||
|   local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | 	local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | ||||||
|   __banner "$pre_execute_checks_MessageST" | 	__banner "$pre_execute_checks_MessageST" | ||||||
|   # Put command to execute in parentheses | 	# Put command to execute in parentheses | ||||||
|   { | 	{ | ||||||
|     true | 		true | ||||||
|   } | 	} | ||||||
|   exitStatus=$? | 	exitStatus=$? | ||||||
|   __banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | 	__banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | ||||||
|  |  | ||||||
|   # show exit message | 	# show exit message | ||||||
|   if [ $exitStatus -ne 0 ]; then | 	if [ $exitStatus -ne 0 ]; then | ||||||
|     echo "The pre-execution check has failed" >&2 | 		echo "The pre-execution check has failed" >&2 | ||||||
|     [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | 		[ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | ||||||
|     exit 1 | 		exit 1 | ||||||
|   fi | 	fi | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | 	if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitStatus | 	return $exitStatus | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __update_conf_files() { | __update_conf_files() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # delete files | 	# delete files | ||||||
|   #__rm "" | 	#__rm "" | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # custom commands | 	# custom commands | ||||||
|   echo 'namserver 127.0.0.1' >"/etc/resolv.conf" | 	echo 'namserver 127.0.0.1' >"/etc/resolv.conf" | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # replace variables | 	# replace variables | ||||||
|   # __replace "" "" "$CONF_DIR/unbound.conf" | 	# __replace "" "" "$CONF_DIR/unbound.conf" | ||||||
|   # replace variables recursively | 	# replace variables recursively | ||||||
|   # __find_replace "" "" "$CONF_DIR" | 	# __find_replace "" "" "$CONF_DIR" | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions | 	# define actions | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | 	if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run before executing | # function to run before executing | ||||||
| __pre_execute() { | __pre_execute() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute if directories is empty | 	# execute if directories is empty | ||||||
|   # __is_dir_empty "$CONF_DIR" && true | 	# __is_dir_empty "$CONF_DIR" && true | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions to run after copying to /config | 	# define actions to run after copying to /config | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # unset unneeded variables | 	# unset unneeded variables | ||||||
|   unset sysname | 	unset sysname | ||||||
|   # Lets wait a few seconds before continuing | 	# Lets wait a few seconds before continuing | ||||||
|   sleep 5 | 	sleep 5 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | 	if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run after executing | # function to run after executing | ||||||
| __post_execute() { | __post_execute() { | ||||||
|   local pid=""                                                    # init pid var | 	local pid=""                                                    # init pid var | ||||||
|   local retVal=0                                                  # set default exit code | 	local retVal=0                                                  # set default exit code | ||||||
|   local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | 	local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | ||||||
|   local waitTime=$((ctime * 60))                                  # convert minutes to seconds | 	local waitTime=$((ctime * 60))                                  # convert minutes to seconds | ||||||
|   local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | 	local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | ||||||
|   local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | 	local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | ||||||
|   # wait | 	# wait | ||||||
|   sleep $waitTime | 	sleep $waitTime | ||||||
|   # execute commands after waiting | 	# execute commands after waiting | ||||||
|   ( | 	( | ||||||
|     # show message | 		# show message | ||||||
|     __banner "$postMessageST" | 		__banner "$postMessageST" | ||||||
|     # commands to execute | 		# commands to execute | ||||||
|     sleep 5 | 		sleep 5 | ||||||
|     # show exit message | 		# show exit message | ||||||
|     __banner "$postMessageEnd: Status $retVal" | 		__banner "$postMessageEnd: Status $retVal" | ||||||
|   ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | 	) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | ||||||
|   pid=$! | 	pid=$! | ||||||
|   ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | 	ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | 	if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $retVal | 	return $retVal | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __pre_message() { | __pre_message() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   [ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | 	[ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | 	if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to setup ssl support | # use this function to setup ssl support | ||||||
| __update_ssl_conf() { | __update_ssl_conf() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | 	if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | ||||||
|   # set exitCode | 	# set exitCode | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| __create_service_env() { | __create_service_env() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | ||||||
|     cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | 		cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # root/admin user info [password/random] | # root/admin user info [password/random] | ||||||
| #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$UNBOUND_ROOT_USER_NAME}"   # root user name | #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$UNBOUND_ROOT_USER_NAME}"   # root user name | ||||||
| @@ -331,84 +331,84 @@ __create_service_env() { | |||||||
| #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   fi | 	fi | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_precopy_local() { true; } | 		__run_precopy_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __execute_prerun_local() { true; } | 		__execute_prerun_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_pre_execute_checks_local() { true; } | 		__run_pre_execute_checks_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_conf_files_local() { true; } | 		__update_conf_files_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_execute_local() { true; } | 		__pre_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __post_execute_local() { true; } | 		__post_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_message_local() { true; } | 		__pre_message_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_ssl_conf_local() { true; } | 		__update_ssl_conf_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   fi | 	fi | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # script to start server | # script to start server | ||||||
| __run_start_script() { | __run_start_script() { | ||||||
|   local runExitCode=0 | 	local runExitCode=0 | ||||||
|   local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | 	local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | ||||||
|   local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | 	local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | ||||||
|   local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | 	local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | ||||||
|   local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | 	local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | ||||||
|   local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | 	local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | ||||||
|   local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | 	local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | ||||||
|   local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | 	local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | ||||||
|   local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | 	local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | ||||||
|   local path="$(eval echo "$PATH")"                              # expand variables | 	local path="$(eval echo "$PATH")"                              # expand variables | ||||||
|   local message="$(eval echo "")"                                # expand variables | 	local message="$(eval echo "")"                                # expand variables | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   [ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | 	[ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | ||||||
|   # | 	# | ||||||
|   if [ -z "$cmd" ]; then | 	if [ -z "$cmd" ]; then | ||||||
|     __post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | 		__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | ||||||
|     retVal=$? | 		retVal=$? | ||||||
|     echo "Initializing $SCRIPT_NAME has completed" | 		echo "Initializing $SCRIPT_NAME has completed" | ||||||
|     exit $retVal | 		exit $retVal | ||||||
|   else | 	else | ||||||
|     # ensure the command exists | 		# ensure the command exists | ||||||
|     if [ ! -x "$cmd" ]; then | 		if [ ! -x "$cmd" ]; then | ||||||
|       echo "$name is not a valid executable" | 			echo "$name is not a valid executable" | ||||||
|       return 2 | 			return 2 | ||||||
|     fi | 		fi | ||||||
|     # check and exit if already running | 		# check and exit if already running | ||||||
|     if __proc_check "$name" || __proc_check "$cmd"; then | 		if __proc_check "$name" || __proc_check "$cmd"; then | ||||||
|       echo "$name is already running" >&2 | 			echo "$name is already running" >&2 | ||||||
|       return 0 | 			return 0 | ||||||
|     else | 		else | ||||||
|       # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 			# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|       # show message if env exists | 			# show message if env exists | ||||||
|       if [ -n "$cmd" ]; then | 			if [ -n "$cmd" ]; then | ||||||
|         [ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | 				[ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | ||||||
|         [ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | 				[ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | ||||||
|       fi | 			fi | ||||||
|       if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | 			if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | ||||||
|         export cmd_exec="$pre $cmd $args" | 				export cmd_exec="$pre $cmd $args" | ||||||
|         message="Starting service: $name $args through $pre" | 				message="Starting service: $name $args through $pre" | ||||||
|       else | 			else | ||||||
|         export cmd_exec="$cmd $args" | 				export cmd_exec="$cmd $args" | ||||||
|         message="Starting service: $name $args" | 				message="Starting service: $name $args" | ||||||
|       fi | 			fi | ||||||
|       [ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | 			[ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | ||||||
|       echo "$message" | tee -a -p "/data/logs/init.txt" | 			echo "$message" | tee -a -p "/data/logs/init.txt" | ||||||
|       su_cmd touch "$SERVICE_PID_FILE" | 			su_cmd touch "$SERVICE_PID_FILE" | ||||||
|       if [ "$RESET_ENV" = "yes" ]; then | 			if [ "$RESET_ENV" = "yes" ]; then | ||||||
|         env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | 				env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | ||||||
|         execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | 				execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -427,11 +427,11 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       else | 			else | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           execute_command="$(__trim "$su_exec $cmd_exec")" | 					execute_command="$(__trim "$su_exec $cmd_exec")" | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -450,36 +450,36 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       fi | 			fi | ||||||
|     fi | 		fi | ||||||
|     [ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | 		[ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | ||||||
|     [ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | 		[ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | ||||||
|     runExitCode=$? | 		runExitCode=$? | ||||||
|   fi | 	fi | ||||||
|   return $runExitCode | 	return $runExitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # username and password actions | # username and password actions | ||||||
| __run_secure_function() { | __run_secure_function() { | ||||||
|   local filesperms | 	local filesperms | ||||||
|   if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | 	if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | ||||||
|     for filesperms in "${USER_FILE_PREFIX}"/*; do | 		for filesperms in "${USER_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | 	if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | ||||||
|     for filesperms in "${ROOT_FILE_PREFIX}"/*; do | 		for filesperms in "${ROOT_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   unset filesperms | 	unset filesperms | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Allow ENV_ variable - Import env file | # Allow ENV_ variable - Import env file | ||||||
| @@ -513,68 +513,68 @@ __check_service "$1" && SERVICE_IS_RUNNING=yes | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Database env | # Database env | ||||||
| if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | ||||||
|   RESET_ENV="no" | 	RESET_ENV="no" | ||||||
|   DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | 	DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | ||||||
|   DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | 	DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | ||||||
|   DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | 	DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | ||||||
|   DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | 	DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | ||||||
|   DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | 	DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | ||||||
|   if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | 	if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | ||||||
|     echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | 		echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | 	if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | ||||||
|     echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | 		echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | ||||||
|   fi | 	fi | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | ||||||
| if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | ||||||
| elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | ||||||
| elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | ||||||
| elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | ||||||
| elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | ||||||
| elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | ||||||
| elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | 	[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | ||||||
|   chmod 777 "$DATABASE_DIR" | 	chmod 777 "$DATABASE_DIR" | ||||||
| fi | fi | ||||||
| [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| @@ -647,7 +647,7 @@ __run_precopy | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Copy /config to /etc | # Copy /config to /etc | ||||||
| for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | ||||||
|   __initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | 	__initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Replace variables | # Replace variables | ||||||
| @@ -671,15 +671,15 @@ __run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" " | |||||||
| __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | ||||||
| errorCode=$? | errorCode=$? | ||||||
| if [ -n "$EXEC_CMD_BIN" ]; then | if [ -n "$EXEC_CMD_BIN" ]; then | ||||||
|   if [ "$errorCode" -eq 0 ]; then | 	if [ "$errorCode" -eq 0 ]; then | ||||||
|     SERVICE_EXIT_CODE=0 | 		SERVICE_EXIT_CODE=0 | ||||||
|     SERVICE_IS_RUNNING="yes" | 		SERVICE_IS_RUNNING="yes" | ||||||
|   else | 	else | ||||||
|     SERVICE_EXIT_CODE=$errorCode | 		SERVICE_EXIT_CODE=$errorCode | ||||||
|     SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | 		SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | ||||||
|     [ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | 		[ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | ||||||
|   fi | 	fi | ||||||
|   SERVICE_EXIT_CODE=0 | 	SERVICE_EXIT_CODE=0 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # start the post execute function in background | # start the post execute function in background | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # @@sudo/root        :  no | # @@sudo/root        :  no | ||||||
| # @@Template         :  other/start-service | # @@Template         :  other/start-service | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317 | # shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317,SC2329 | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # run trap command on exit | # run trap command on exit | ||||||
| trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | ||||||
| @@ -35,19 +35,19 @@ SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # exit if __start_init_scripts function hasn't been Initialized | # exit if __start_init_scripts function hasn't been Initialized | ||||||
| if [ ! -f "/run/__start_init_scripts.pid" ]; then | if [ ! -f "/run/__start_init_scripts.pid" ]; then | ||||||
|   echo "__start_init_scripts function hasn't been Initialized" >&2 | 	echo "__start_init_scripts function hasn't been Initialized" >&2 | ||||||
|   SERVICE_IS_RUNNING="no" | 	SERVICE_IS_RUNNING="no" | ||||||
|   exit 1 | 	exit 1 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import the functions file | # import the functions file | ||||||
| if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | ||||||
|   . "/usr/local/etc/docker/functions/entrypoint.sh" | 	. "/usr/local/etc/docker/functions/entrypoint.sh" | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import variables | # import variables | ||||||
| for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | ||||||
|   [ -f "$set_env" ] && . "$set_env" | 	[ -f "$set_env" ] && . "$set_env" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | ||||||
| @@ -172,151 +172,151 @@ CMD_ENV="" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom commands to run before copying to /config | # Custom commands to run before copying to /config | ||||||
| __run_precopy() { | __run_precopy() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | 	if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom prerun functions - IE setup WWW_ROOT_DIR | # Custom prerun functions - IE setup WWW_ROOT_DIR | ||||||
| __execute_prerun() { | __execute_prerun() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | 	if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Run any pre-execution checks | # Run any pre-execution checks | ||||||
| __run_pre_execute_checks() { | __run_pre_execute_checks() { | ||||||
|   # Set variables | 	# Set variables | ||||||
|   local exitStatus=0 | 	local exitStatus=0 | ||||||
|   local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | 	local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | ||||||
|   local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | 	local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | ||||||
|   __banner "$pre_execute_checks_MessageST" | 	__banner "$pre_execute_checks_MessageST" | ||||||
|   # Put command to execute in parentheses | 	# Put command to execute in parentheses | ||||||
|   { | 	{ | ||||||
|     true | 		true | ||||||
|   } | 	} | ||||||
|   exitStatus=$? | 	exitStatus=$? | ||||||
|   __banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | 	__banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | ||||||
|  |  | ||||||
|   # show exit message | 	# show exit message | ||||||
|   if [ $exitStatus -ne 0 ]; then | 	if [ $exitStatus -ne 0 ]; then | ||||||
|     echo "The pre-execution check has failed" >&2 | 		echo "The pre-execution check has failed" >&2 | ||||||
|     [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | 		[ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | ||||||
|     exit 1 | 		exit 1 | ||||||
|   fi | 	fi | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | 	if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitStatus | 	return $exitStatus | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __update_conf_files() { | __update_conf_files() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # delete files | 	# delete files | ||||||
|   #__rm "" | 	#__rm "" | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # custom commands | 	# custom commands | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # replace variables | 	# replace variables | ||||||
|   # __replace "" "" "$CONF_DIR/privoxy.conf" | 	# __replace "" "" "$CONF_DIR/privoxy.conf" | ||||||
|   # replace variables recursively | 	# replace variables recursively | ||||||
|   # __find_replace "" "" "$CONF_DIR" | 	# __find_replace "" "" "$CONF_DIR" | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions | 	# define actions | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | 	if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run before executing | # function to run before executing | ||||||
| __pre_execute() { | __pre_execute() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute if directories is empty | 	# execute if directories is empty | ||||||
|   # __is_dir_empty "$CONF_DIR" && true | 	# __is_dir_empty "$CONF_DIR" && true | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions to run after copying to /config | 	# define actions to run after copying to /config | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # unset unneeded variables | 	# unset unneeded variables | ||||||
|   unset sysname | 	unset sysname | ||||||
|   # Lets wait a few seconds before continuing | 	# Lets wait a few seconds before continuing | ||||||
|   sleep 5 | 	sleep 5 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | 	if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run after executing | # function to run after executing | ||||||
| __post_execute() { | __post_execute() { | ||||||
|   local pid=""                                                    # init pid var | 	local pid=""                                                    # init pid var | ||||||
|   local retVal=0                                                  # set default exit code | 	local retVal=0                                                  # set default exit code | ||||||
|   local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | 	local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | ||||||
|   local waitTime=$((ctime * 60))                                  # convert minutes to seconds | 	local waitTime=$((ctime * 60))                                  # convert minutes to seconds | ||||||
|   local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | 	local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | ||||||
|   local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | 	local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | ||||||
|   # wait | 	# wait | ||||||
|   sleep $waitTime | 	sleep $waitTime | ||||||
|   # execute commands after waiting | 	# execute commands after waiting | ||||||
|   ( | 	( | ||||||
|     # show message | 		# show message | ||||||
|     __banner "$postMessageST" | 		__banner "$postMessageST" | ||||||
|     # commands to execute | 		# commands to execute | ||||||
|     sleep 5 | 		sleep 5 | ||||||
|     # show exit message | 		# show exit message | ||||||
|     __banner "$postMessageEnd: Status $retVal" | 		__banner "$postMessageEnd: Status $retVal" | ||||||
|   ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | 	) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | ||||||
|   pid=$! | 	pid=$! | ||||||
|   ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | 	ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | 	if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $retVal | 	return $retVal | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __pre_message() { | __pre_message() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   [ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | 	[ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | 	if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to setup ssl support | # use this function to setup ssl support | ||||||
| __update_ssl_conf() { | __update_ssl_conf() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | 	if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | ||||||
|   # set exitCode | 	# set exitCode | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| __create_service_env() { | __create_service_env() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | ||||||
|     cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | 		cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # root/admin user info [password/random] | # root/admin user info [password/random] | ||||||
| #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$PRIVOXY_ROOT_USER_NAME}"   # root user name | #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$PRIVOXY_ROOT_USER_NAME}"   # root user name | ||||||
| @@ -331,84 +331,84 @@ __create_service_env() { | |||||||
| #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   fi | 	fi | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_precopy_local() { true; } | 		__run_precopy_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __execute_prerun_local() { true; } | 		__execute_prerun_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_pre_execute_checks_local() { true; } | 		__run_pre_execute_checks_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_conf_files_local() { true; } | 		__update_conf_files_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_execute_local() { true; } | 		__pre_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __post_execute_local() { true; } | 		__post_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_message_local() { true; } | 		__pre_message_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_ssl_conf_local() { true; } | 		__update_ssl_conf_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   fi | 	fi | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # script to start server | # script to start server | ||||||
| __run_start_script() { | __run_start_script() { | ||||||
|   local runExitCode=0 | 	local runExitCode=0 | ||||||
|   local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | 	local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | ||||||
|   local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | 	local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | ||||||
|   local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | 	local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | ||||||
|   local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | 	local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | ||||||
|   local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | 	local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | ||||||
|   local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | 	local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | ||||||
|   local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | 	local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | ||||||
|   local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | 	local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | ||||||
|   local path="$(eval echo "$PATH")"                              # expand variables | 	local path="$(eval echo "$PATH")"                              # expand variables | ||||||
|   local message="$(eval echo "")"                                # expand variables | 	local message="$(eval echo "")"                                # expand variables | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   [ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | 	[ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | ||||||
|   # | 	# | ||||||
|   if [ -z "$cmd" ]; then | 	if [ -z "$cmd" ]; then | ||||||
|     __post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | 		__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | ||||||
|     retVal=$? | 		retVal=$? | ||||||
|     echo "Initializing $SCRIPT_NAME has completed" | 		echo "Initializing $SCRIPT_NAME has completed" | ||||||
|     exit $retVal | 		exit $retVal | ||||||
|   else | 	else | ||||||
|     # ensure the command exists | 		# ensure the command exists | ||||||
|     if [ ! -x "$cmd" ]; then | 		if [ ! -x "$cmd" ]; then | ||||||
|       echo "$name is not a valid executable" | 			echo "$name is not a valid executable" | ||||||
|       return 2 | 			return 2 | ||||||
|     fi | 		fi | ||||||
|     # check and exit if already running | 		# check and exit if already running | ||||||
|     if __proc_check "$name" || __proc_check "$cmd"; then | 		if __proc_check "$name" || __proc_check "$cmd"; then | ||||||
|       echo "$name is already running" >&2 | 			echo "$name is already running" >&2 | ||||||
|       return 0 | 			return 0 | ||||||
|     else | 		else | ||||||
|       # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 			# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|       # show message if env exists | 			# show message if env exists | ||||||
|       if [ -n "$cmd" ]; then | 			if [ -n "$cmd" ]; then | ||||||
|         [ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | 				[ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | ||||||
|         [ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | 				[ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | ||||||
|       fi | 			fi | ||||||
|       if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | 			if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | ||||||
|         export cmd_exec="$pre $cmd $args" | 				export cmd_exec="$pre $cmd $args" | ||||||
|         message="Starting service: $name $args through $pre" | 				message="Starting service: $name $args through $pre" | ||||||
|       else | 			else | ||||||
|         export cmd_exec="$cmd $args" | 				export cmd_exec="$cmd $args" | ||||||
|         message="Starting service: $name $args" | 				message="Starting service: $name $args" | ||||||
|       fi | 			fi | ||||||
|       [ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | 			[ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | ||||||
|       echo "$message" | tee -a -p "/data/logs/init.txt" | 			echo "$message" | tee -a -p "/data/logs/init.txt" | ||||||
|       su_cmd touch "$SERVICE_PID_FILE" | 			su_cmd touch "$SERVICE_PID_FILE" | ||||||
|       if [ "$RESET_ENV" = "yes" ]; then | 			if [ "$RESET_ENV" = "yes" ]; then | ||||||
|         env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | 				env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | ||||||
|         execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | 				execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -427,11 +427,11 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       else | 			else | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           execute_command="$(__trim "$su_exec $cmd_exec")" | 					execute_command="$(__trim "$su_exec $cmd_exec")" | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -450,36 +450,36 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       fi | 			fi | ||||||
|     fi | 		fi | ||||||
|     [ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | 		[ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | ||||||
|     [ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | 		[ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | ||||||
|     runExitCode=$? | 		runExitCode=$? | ||||||
|   fi | 	fi | ||||||
|   return $runExitCode | 	return $runExitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # username and password actions | # username and password actions | ||||||
| __run_secure_function() { | __run_secure_function() { | ||||||
|   local filesperms | 	local filesperms | ||||||
|   if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | 	if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | ||||||
|     for filesperms in "${USER_FILE_PREFIX}"/*; do | 		for filesperms in "${USER_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | 	if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | ||||||
|     for filesperms in "${ROOT_FILE_PREFIX}"/*; do | 		for filesperms in "${ROOT_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   unset filesperms | 	unset filesperms | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Allow ENV_ variable - Import env file | # Allow ENV_ variable - Import env file | ||||||
| @@ -513,68 +513,68 @@ __check_service "$1" && SERVICE_IS_RUNNING=yes | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Database env | # Database env | ||||||
| if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | ||||||
|   RESET_ENV="no" | 	RESET_ENV="no" | ||||||
|   DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | 	DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | ||||||
|   DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | 	DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | ||||||
|   DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | 	DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | ||||||
|   DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | 	DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | ||||||
|   DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | 	DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | ||||||
|   if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | 	if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | ||||||
|     echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | 		echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | 	if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | ||||||
|     echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | 		echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | ||||||
|   fi | 	fi | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | ||||||
| if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | ||||||
| elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | ||||||
| elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | ||||||
| elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | ||||||
| elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | ||||||
| elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | ||||||
| elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | 	[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | ||||||
|   chmod 777 "$DATABASE_DIR" | 	chmod 777 "$DATABASE_DIR" | ||||||
| fi | fi | ||||||
| [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| @@ -647,7 +647,7 @@ __run_precopy | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Copy /config to /etc | # Copy /config to /etc | ||||||
| for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | ||||||
|   __initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | 	__initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Replace variables | # Replace variables | ||||||
| @@ -671,15 +671,15 @@ __run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" " | |||||||
| __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | ||||||
| errorCode=$? | errorCode=$? | ||||||
| if [ -n "$EXEC_CMD_BIN" ]; then | if [ -n "$EXEC_CMD_BIN" ]; then | ||||||
|   if [ "$errorCode" -eq 0 ]; then | 	if [ "$errorCode" -eq 0 ]; then | ||||||
|     SERVICE_EXIT_CODE=0 | 		SERVICE_EXIT_CODE=0 | ||||||
|     SERVICE_IS_RUNNING="yes" | 		SERVICE_IS_RUNNING="yes" | ||||||
|   else | 	else | ||||||
|     SERVICE_EXIT_CODE=$errorCode | 		SERVICE_EXIT_CODE=$errorCode | ||||||
|     SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | 		SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | ||||||
|     [ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | 		[ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | ||||||
|   fi | 	fi | ||||||
|   SERVICE_EXIT_CODE=0 | 	SERVICE_EXIT_CODE=0 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # start the post execute function in background | # start the post execute function in background | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # @@sudo/root        :  no | # @@sudo/root        :  no | ||||||
| # @@Template         :  other/start-service | # @@Template         :  other/start-service | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317 | # shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317,SC2329 | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # run trap command on exit | # run trap command on exit | ||||||
| trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM | ||||||
| @@ -35,19 +35,19 @@ SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # exit if __start_init_scripts function hasn't been Initialized | # exit if __start_init_scripts function hasn't been Initialized | ||||||
| if [ ! -f "/run/__start_init_scripts.pid" ]; then | if [ ! -f "/run/__start_init_scripts.pid" ]; then | ||||||
|   echo "__start_init_scripts function hasn't been Initialized" >&2 | 	echo "__start_init_scripts function hasn't been Initialized" >&2 | ||||||
|   SERVICE_IS_RUNNING="no" | 	SERVICE_IS_RUNNING="no" | ||||||
|   exit 1 | 	exit 1 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import the functions file | # import the functions file | ||||||
| if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then | ||||||
|   . "/usr/local/etc/docker/functions/entrypoint.sh" | 	. "/usr/local/etc/docker/functions/entrypoint.sh" | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # import variables | # import variables | ||||||
| for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do | ||||||
|   [ -f "$set_env" ] && . "$set_env" | 	[ -f "$set_env" ] && . "$set_env" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" | ||||||
| @@ -172,206 +172,206 @@ CMD_ENV="" | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom commands to run before copying to /config | # Custom commands to run before copying to /config | ||||||
| __run_precopy() { | __run_precopy() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|   if [ ! -d "$WWW_ROOT_DIR" ] || __is_dir_empty "$WWW_ROOT_DIR"; then | 	if [ ! -d "$WWW_ROOT_DIR" ] || __is_dir_empty "$WWW_ROOT_DIR"; then | ||||||
|     mkdir -p "$WWW_ROOT_DIR" | 		mkdir -p "$WWW_ROOT_DIR" | ||||||
|     if [ -d "/usr/share/httpd/default" ]; then | 		if [ -d "/usr/share/httpd/default" ]; then | ||||||
|       cp -Rf "/usr/share/httpd/default/." "$WWW_ROOT_DIR/" | 			cp -Rf "/usr/share/httpd/default/." "$WWW_ROOT_DIR/" | ||||||
|       [ -f "$WWW_ROOT_DIR/hidden_service.html" ] && rm -Rf "$WWW_ROOT_DIR/hidden_service.html" | 			[ -f "$WWW_ROOT_DIR/hidden_service.html" ] && rm -Rf "$WWW_ROOT_DIR/hidden_service.html" | ||||||
|     else | 		else | ||||||
|       echo "Welcome" >"$WWW_ROOT_DIR/index.php" | 			echo "Welcome" >"$WWW_ROOT_DIR/index.php" | ||||||
|     fi | 		fi | ||||||
|   fi | 	fi | ||||||
|   if [ -d "$WWW_ROOT_DIR/.git" ]; then | 	if [ -d "$WWW_ROOT_DIR/.git" ]; then | ||||||
|     rm -Rf "$WWW_ROOT_DIR/.git" | 		rm -Rf "$WWW_ROOT_DIR/.git" | ||||||
|   fi | 	fi | ||||||
|   [ -d "$WWW_ROOT_DIR/.well-known" ] || mkdir -p "$WWW_ROOT_DIR/.well-known" | 	[ -d "$WWW_ROOT_DIR/.well-known" ] || mkdir -p "$WWW_ROOT_DIR/.well-known" | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | 	if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Custom prerun functions - IE setup WWW_ROOT_DIR | # Custom prerun functions - IE setup WWW_ROOT_DIR | ||||||
| __execute_prerun() { | __execute_prerun() { | ||||||
|   # Define environment | 	# Define environment | ||||||
|   local hostname=${HOSTNAME} | 	local hostname=${HOSTNAME} | ||||||
|   local php_ver="${PHP_VERSION:-84}" | 	local php_ver="${PHP_VERSION:-84}" | ||||||
|   local php_fpm_bin="$(type -P php-fpm || type -P php-fpm$$php_ver || false)" | 	local php_fpm_bin="$(type -P php-fpm || type -P php-fpm$$php_ver || false)" | ||||||
|   # Define actions/commands | 	# Define actions/commands | ||||||
|   if [ -n "$php_fpm_bin" ]; then | 	if [ -n "$php_fpm_bin" ]; then | ||||||
|     $php_fpm_bin --nodaemonize --fpm-config "/etc/php$php_ver/php-fpm.conf" & | 		$php_fpm_bin --nodaemonize --fpm-config "/etc/php$php_ver/php-fpm.conf" & | ||||||
|   fi | 	fi | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | 	if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Run any pre-execution checks | # Run any pre-execution checks | ||||||
| __run_pre_execute_checks() { | __run_pre_execute_checks() { | ||||||
|   # Set variables | 	# Set variables | ||||||
|   local exitStatus=0 | 	local exitStatus=0 | ||||||
|   local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | 	local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME"   # message to show at start | ||||||
|   local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | 	local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion | ||||||
|   __banner "$pre_execute_checks_MessageST" | 	__banner "$pre_execute_checks_MessageST" | ||||||
|   # Put command to execute in parentheses | 	# Put command to execute in parentheses | ||||||
|   { | 	{ | ||||||
|     true | 		true | ||||||
|   } | 	} | ||||||
|   exitStatus=$? | 	exitStatus=$? | ||||||
|   __banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | 	__banner "$pre_execute_checks_MessageEnd: Status $exitStatus" | ||||||
|  |  | ||||||
|   # show exit message | 	# show exit message | ||||||
|   if [ $exitStatus -ne 0 ]; then | 	if [ $exitStatus -ne 0 ]; then | ||||||
|     echo "The pre-execution check has failed" >&2 | 		echo "The pre-execution check has failed" >&2 | ||||||
|     [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | 		[ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE" | ||||||
|     exit 1 | 		exit 1 | ||||||
|   fi | 	fi | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | 	if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitStatus | 	return $exitStatus | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __update_conf_files() { | __update_conf_files() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   local default_host="$DEFAULT_ONION_SITE" | 	local default_host="$DEFAULT_ONION_SITE" | ||||||
|   if [ -f "$WWW_ROOT_DIR/default_host.txt" ]; then | 	if [ -f "$WWW_ROOT_DIR/default_host.txt" ]; then | ||||||
|     default_host="${default_host:-$(<"$WWW_ROOT_DIR/default_host.txt")}" | 		default_host="${default_host:-$(<"$WWW_ROOT_DIR/default_host.txt")}" | ||||||
|     rm -Rf "$WWW_ROOT_DIR/default_host.txt" | 		rm -Rf "$WWW_ROOT_DIR/default_host.txt" | ||||||
|   fi | 	fi | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # delete files | 	# delete files | ||||||
|   #__rm "" | 	#__rm "" | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # custom commands | 	# custom commands | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # replace variables | 	# replace variables | ||||||
|   # __replace "" "" "$CONF_DIR/nginx.conf" | 	# __replace "" "" "$CONF_DIR/nginx.conf" | ||||||
|   # replace variables recursively | 	# replace variables recursively | ||||||
|   # __find_replace "" "" "$CONF_DIR" | 	# __find_replace "" "" "$CONF_DIR" | ||||||
|   if [ -n "$default_host" ] && [ -f "$WWW_ROOT_DIR/index.html" ]; then | 	if [ -n "$default_host" ] && [ -f "$WWW_ROOT_DIR/index.html" ]; then | ||||||
|     sed -i 's|REPLACE_DEFAULT_TOR_ADDRESS|'$default_host'|g' "$WWW_ROOT_DIR/index.html" | 		sed -i 's|REPLACE_DEFAULT_TOR_ADDRESS|'$default_host'|g' "$WWW_ROOT_DIR/index.html" | ||||||
|   fi | 	fi | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions | 	# define actions | ||||||
|   while :; do | 	while :; do | ||||||
|     echo "waiting for tor to start" | 		echo "waiting for tor to start" | ||||||
|     [ -f "/tmp/init_tor_services" ] && sleep 30 || break | 		[ -f "/tmp/init_tor_services" ] && sleep 30 || break | ||||||
|   done | 	done | ||||||
|   echo "The tor server seems to have started                                    " | 	echo "The tor server seems to have started                                    " | ||||||
|   for site in "/run/tor/sites"/*; do | 	for site in "/run/tor/sites"/*; do | ||||||
|     onion_site="$(basename -- $site)" | 		onion_site="$(basename -- $site)" | ||||||
|     __onion_site_dir_is_empty "$onion_site" && NEW_SITE="yes" | 		__onion_site_dir_is_empty "$onion_site" && NEW_SITE="yes" | ||||||
|     [ -d "/data/htdocs/onions/$onion_site" ] || mkdir -p "/data/htdocs/onions/$onion_site" | 		[ -d "/data/htdocs/onions/$onion_site" ] || mkdir -p "/data/htdocs/onions/$onion_site" | ||||||
|     if [ "$default_host" = "$onion_site" ]; then | 		if [ "$default_host" = "$onion_site" ]; then | ||||||
|       if __onion_site_dir_is_empty "$onion_site"; then | 			if __onion_site_dir_is_empty "$onion_site"; then | ||||||
|         cp -Rfa "$WWW_ROOT_DIR/." "/data/htdocs/onions/$onion_site/" | 				cp -Rfa "$WWW_ROOT_DIR/." "/data/htdocs/onions/$onion_site/" | ||||||
|       fi | 			fi | ||||||
|     else | 		else | ||||||
|       if [ "$NEW_SITE" = "yes" ]; then | 			if [ "$NEW_SITE" = "yes" ]; then | ||||||
|         if [ -f "/usr/share/httpd/default/hidden_service.html" ]; then | 				if [ -f "/usr/share/httpd/default/hidden_service.html" ]; then | ||||||
|           cp -Rf "/usr/share/httpd/default/hidden_service.html" "/data/htdocs/onions/$onion_site/index.html" | 					cp -Rf "/usr/share/httpd/default/hidden_service.html" "/data/htdocs/onions/$onion_site/index.html" | ||||||
|         else | 				else | ||||||
|           echo '<html><body><br /><center>HTML Document Root: /data/htdocs/onions/'$onion_site'</center><br /></body></html>' >"/data/htdocs/onions/$onion_site/index.html" | 					echo '<html><body><br /><center>HTML Document Root: /data/htdocs/onions/'$onion_site'</center><br /></body></html>' >"/data/htdocs/onions/$onion_site/index.html" | ||||||
|         fi | 				fi | ||||||
|       fi | 			fi | ||||||
|     fi | 		fi | ||||||
|     if [ ! -f "/config/nginx/vhosts.d/$onion_site.onion.conf" ]; then | 		if [ ! -f "/config/nginx/vhosts.d/$onion_site.onion.conf" ]; then | ||||||
|       cp -Rf "/config/nginx/vhosts.d/template" "/config/nginx/vhosts.d/$onion_site.onion.conf" | 			cp -Rf "/config/nginx/vhosts.d/template" "/config/nginx/vhosts.d/$onion_site.onion.conf" | ||||||
|       sed -i 's|REPLACE_ONION_PORT|'$SERVICE_PORT'|g' "/config/nginx/vhosts.d/$onion_site.onion.conf" | 			sed -i 's|REPLACE_ONION_PORT|'$SERVICE_PORT'|g' "/config/nginx/vhosts.d/$onion_site.onion.conf" | ||||||
|       sed -i 's|REPLACE_ONION_SITE|'$onion_site.onion'|g' "/config/nginx/vhosts.d/$onion_site.onion.conf" | 			sed -i 's|REPLACE_ONION_SITE|'$onion_site.onion'|g' "/config/nginx/vhosts.d/$onion_site.onion.conf" | ||||||
|       sed -i 's|REPLACE_ONION_WWW_DIR|/data/htdocs/onions/'$onion_site'|g' "/config/nginx/vhosts.d/$onion_site.onion.conf" | 			sed -i 's|REPLACE_ONION_WWW_DIR|/data/htdocs/onions/'$onion_site'|g' "/config/nginx/vhosts.d/$onion_site.onion.conf" | ||||||
|       sed -i 's|REPLACE_ONION_WWW_DIR|/data/htdocs/onions/'$onion_site'|g' "/data/htdocs/onions/$onion_site/index.html" | 			sed -i 's|REPLACE_ONION_WWW_DIR|/data/htdocs/onions/'$onion_site'|g' "/data/htdocs/onions/$onion_site/index.html" | ||||||
|       sed -i 's|REPLACE_DEFAULT_TOR_ADDRESS|'$onion_site'|g' "/data/htdocs/onions/$onion_site/index.html" | 			sed -i 's|REPLACE_DEFAULT_TOR_ADDRESS|'$onion_site'|g' "/data/htdocs/onions/$onion_site/index.html" | ||||||
|     fi | 		fi | ||||||
|     unset NEW_SITE | 		unset NEW_SITE | ||||||
|     echo "Created $onion_site.onion in /data/htdocs/onions/$onion_site" | 		echo "Created $onion_site.onion in /data/htdocs/onions/$onion_site" | ||||||
|   done | 	done | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | 	if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run before executing | # function to run before executing | ||||||
| __pre_execute() { | __pre_execute() { | ||||||
|   local exitCode=0                                               # default exit code | 	local exitCode=0                                               # default exit code | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute if directories is empty | 	# execute if directories is empty | ||||||
|   # __is_dir_empty "$CONF_DIR" && true | 	# __is_dir_empty "$CONF_DIR" && true | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # define actions to run after copying to /config | 	# define actions to run after copying to /config | ||||||
|  |  | ||||||
|   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 	# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   # unset unneeded variables | 	# unset unneeded variables | ||||||
|   unset sysname | 	unset sysname | ||||||
|   # Lets wait a few seconds before continuing | 	# Lets wait a few seconds before continuing | ||||||
|   sleep 5 | 	sleep 5 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | 	if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # function to run after executing | # function to run after executing | ||||||
| __post_execute() { | __post_execute() { | ||||||
|   local pid=""                                                    # init pid var | 	local pid=""                                                    # init pid var | ||||||
|   local retVal=0                                                  # set default exit code | 	local retVal=0                                                  # set default exit code | ||||||
|   local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | 	local ctime=${POST_EXECUTE_WAIT_TIME:-1}                        # how long to wait before executing | ||||||
|   local waitTime=$((ctime * 60))                                  # convert minutes to seconds | 	local waitTime=$((ctime * 60))                                  # convert minutes to seconds | ||||||
|   local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | 	local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start | ||||||
|   local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | 	local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion | ||||||
|   # wait | 	# wait | ||||||
|   sleep $waitTime | 	sleep $waitTime | ||||||
|   # execute commands after waiting | 	# execute commands after waiting | ||||||
|   ( | 	( | ||||||
|     # show message | 		# show message | ||||||
|     __banner "$postMessageST" | 		__banner "$postMessageST" | ||||||
|     # commands to execute | 		# commands to execute | ||||||
|     sleep 5 | 		sleep 5 | ||||||
|     # show exit message | 		# show exit message | ||||||
|     __banner "$postMessageEnd: Status $retVal" | 		__banner "$postMessageEnd: Status $retVal" | ||||||
|   ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | 	) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & | ||||||
|   pid=$! | 	pid=$! | ||||||
|   ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | 	ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | 	if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $retVal | 	return $retVal | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to update config files - IE: change port | # use this function to update config files - IE: change port | ||||||
| __pre_message() { | __pre_message() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   [ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | 	[ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | 	if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi | ||||||
|   # exit function | 	# exit function | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # use this function to setup ssl support | # use this function to setup ssl support | ||||||
| __update_ssl_conf() { | __update_ssl_conf() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   # execute commands | 	# execute commands | ||||||
|  |  | ||||||
|   # allow custom functions | 	# allow custom functions | ||||||
|   if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | 	if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi | ||||||
|   # set exitCode | 	# set exitCode | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| __create_service_env() { | __create_service_env() { | ||||||
|   local exitCode=0 | 	local exitCode=0 | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then | ||||||
|     cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | 		cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # root/admin user info [password/random] | # root/admin user info [password/random] | ||||||
| #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$NGINX_ROOT_USER_NAME}"   # root user name | #ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$NGINX_ROOT_USER_NAME}"   # root user name | ||||||
| @@ -386,84 +386,84 @@ __create_service_env() { | |||||||
| #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | #user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|   fi | 	fi | ||||||
|   if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | 	if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_precopy_local() { true; } | 		__run_precopy_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __execute_prerun_local() { true; } | 		__execute_prerun_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __run_pre_execute_checks_local() { true; } | 		__run_pre_execute_checks_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_conf_files_local() { true; } | 		__update_conf_files_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_execute_local() { true; } | 		__pre_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __post_execute_local() { true; } | 		__post_execute_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __pre_message_local() { true; } | 		__pre_message_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|     __update_ssl_conf_local() { true; } | 		__update_ssl_conf_local() { true; } | ||||||
|     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 		# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|   fi | 	fi | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1)) | ||||||
|   __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | 	__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1)) | ||||||
|   return $exitCode | 	return $exitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # script to start server | # script to start server | ||||||
| __run_start_script() { | __run_start_script() { | ||||||
|   local runExitCode=0 | 	local runExitCode=0 | ||||||
|   local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | 	local workdir="$(eval echo "${WORK_DIR:-}")"                   # expand variables | ||||||
|   local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | 	local cmd="$(eval echo "${EXEC_CMD_BIN:-}")"                   # expand variables | ||||||
|   local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | 	local args="$(eval echo "${EXEC_CMD_ARGS:-}")"                 # expand variables | ||||||
|   local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | 	local name="$(eval echo "${EXEC_CMD_NAME:-}")"                 # expand variables | ||||||
|   local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | 	local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")"                # expand variables | ||||||
|   local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | 	local extra_env="$(eval echo "${CMD_ENV//,/ }")"               # expand variables | ||||||
|   local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | 	local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")"   # expand variables | ||||||
|   local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | 	local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")"   # expand variables | ||||||
|   local path="$(eval echo "$PATH")"                              # expand variables | 	local path="$(eval echo "$PATH")"                              # expand variables | ||||||
|   local message="$(eval echo "")"                                # expand variables | 	local message="$(eval echo "")"                                # expand variables | ||||||
|   local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | 	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname | ||||||
|   [ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | 	[ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" | ||||||
|   # | 	# | ||||||
|   if [ -z "$cmd" ]; then | 	if [ -z "$cmd" ]; then | ||||||
|     __post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | 		__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" | ||||||
|     retVal=$? | 		retVal=$? | ||||||
|     echo "Initializing $SCRIPT_NAME has completed" | 		echo "Initializing $SCRIPT_NAME has completed" | ||||||
|     exit $retVal | 		exit $retVal | ||||||
|   else | 	else | ||||||
|     # ensure the command exists | 		# ensure the command exists | ||||||
|     if [ ! -x "$cmd" ]; then | 		if [ ! -x "$cmd" ]; then | ||||||
|       echo "$name is not a valid executable" | 			echo "$name is not a valid executable" | ||||||
|       return 2 | 			return 2 | ||||||
|     fi | 		fi | ||||||
|     # check and exit if already running | 		# check and exit if already running | ||||||
|     if __proc_check "$name" || __proc_check "$cmd"; then | 		if __proc_check "$name" || __proc_check "$cmd"; then | ||||||
|       echo "$name is already running" >&2 | 			echo "$name is already running" >&2 | ||||||
|       return 0 | 			return 0 | ||||||
|     else | 		else | ||||||
|       # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 			# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
|       # show message if env exists | 			# show message if env exists | ||||||
|       if [ -n "$cmd" ]; then | 			if [ -n "$cmd" ]; then | ||||||
|         [ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | 				[ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root" | ||||||
|         [ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | 				[ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT="" | ||||||
|       fi | 			fi | ||||||
|       if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | 			if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then | ||||||
|         export cmd_exec="$pre $cmd $args" | 				export cmd_exec="$pre $cmd $args" | ||||||
|         message="Starting service: $name $args through $pre" | 				message="Starting service: $name $args through $pre" | ||||||
|       else | 			else | ||||||
|         export cmd_exec="$cmd $args" | 				export cmd_exec="$cmd $args" | ||||||
|         message="Starting service: $name $args" | 				message="Starting service: $name $args" | ||||||
|       fi | 			fi | ||||||
|       [ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | 			[ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt" | ||||||
|       echo "$message" | tee -a -p "/data/logs/init.txt" | 			echo "$message" | tee -a -p "/data/logs/init.txt" | ||||||
|       su_cmd touch "$SERVICE_PID_FILE" | 			su_cmd touch "$SERVICE_PID_FILE" | ||||||
|       if [ "$RESET_ENV" = "yes" ]; then | 			if [ "$RESET_ENV" = "yes" ]; then | ||||||
|         env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | 				env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")" | ||||||
|         execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | 				execute_command="$(__trim "$su_exec $env_command $cmd_exec")" | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -482,11 +482,11 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       else | 			else | ||||||
|         if [ ! -f "$START_SCRIPT" ]; then | 				if [ ! -f "$START_SCRIPT" ]; then | ||||||
|           execute_command="$(__trim "$su_exec $cmd_exec")" | 					execute_command="$(__trim "$su_exec $cmd_exec")" | ||||||
|           cat <<EOF >"$START_SCRIPT" | 					cat <<EOF >"$START_SCRIPT" | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT | ||||||
| # | # | ||||||
| @@ -505,36 +505,36 @@ checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || fal | |||||||
| exit \$retVal | exit \$retVal | ||||||
|  |  | ||||||
| EOF | EOF | ||||||
|         fi | 				fi | ||||||
|       fi | 			fi | ||||||
|     fi | 		fi | ||||||
|     [ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | 		[ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" | ||||||
|     [ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | 		[ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" | ||||||
|     runExitCode=$? | 		runExitCode=$? | ||||||
|   fi | 	fi | ||||||
|   return $runExitCode | 	return $runExitCode | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # username and password actions | # username and password actions | ||||||
| __run_secure_function() { | __run_secure_function() { | ||||||
|   local filesperms | 	local filesperms | ||||||
|   if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | 	if [ -n "$user_name" ] || [ -n "$user_pass" ]; then | ||||||
|     for filesperms in "${USER_FILE_PREFIX}"/*; do | 		for filesperms in "${USER_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | 	if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then | ||||||
|     for filesperms in "${ROOT_FILE_PREFIX}"/*; do | 		for filesperms in "${ROOT_FILE_PREFIX}"/*; do | ||||||
|       if [ -e "$filesperms" ]; then | 			if [ -e "$filesperms" ]; then | ||||||
|         chmod -Rf 600 "$filesperms" | 				chmod -Rf 600 "$filesperms" | ||||||
|         chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | 				chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null | ||||||
|       fi | 			fi | ||||||
|     done 2>/dev/null | tee -p -a "/data/logs/init.txt" | 		done 2>/dev/null | tee -p -a "/data/logs/init.txt" | ||||||
|   fi | 	fi | ||||||
|   unset filesperms | 	unset filesperms | ||||||
| } | } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Allow ENV_ variable - Import env file | # Allow ENV_ variable - Import env file | ||||||
| @@ -568,68 +568,68 @@ __check_service "$1" && SERVICE_IS_RUNNING=yes | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Database env | # Database env | ||||||
| if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then | ||||||
|   RESET_ENV="no" | 	RESET_ENV="no" | ||||||
|   DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | 	DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" | ||||||
|   DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | 	DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}" | ||||||
|   DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | 	DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}" | ||||||
|   DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | 	DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}" | ||||||
|   DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | 	DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}" | ||||||
|   if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | 	if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then | ||||||
|     echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | 		echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user" | ||||||
|   fi | 	fi | ||||||
|   if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | 	if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then | ||||||
|     echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | 		echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root" | ||||||
|   fi | 	fi | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | # [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]] | ||||||
| if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}" | ||||||
| elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}" | ||||||
| elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}" | ||||||
| elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}" | ||||||
| elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}" | ||||||
| elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}" | ||||||
| elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}" | ||||||
| elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then | ||||||
|   DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | 	DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME" | ||||||
|   DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | 	DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | 	[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}" | ||||||
|   [ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | 	[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" | ||||||
|   chmod 777 "$DATABASE_DIR" | 	chmod 777 "$DATABASE_DIR" | ||||||
| fi | fi | ||||||
| [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| @@ -702,7 +702,7 @@ __run_precopy | |||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Copy /config to /etc | # Copy /config to /etc | ||||||
| for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do | ||||||
|   __initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | 	__initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt" | ||||||
| done | done | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # Replace variables | # Replace variables | ||||||
| @@ -726,15 +726,15 @@ __run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" " | |||||||
| __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | __run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" | ||||||
| errorCode=$? | errorCode=$? | ||||||
| if [ -n "$EXEC_CMD_BIN" ]; then | if [ -n "$EXEC_CMD_BIN" ]; then | ||||||
|   if [ "$errorCode" -eq 0 ]; then | 	if [ "$errorCode" -eq 0 ]; then | ||||||
|     SERVICE_EXIT_CODE=0 | 		SERVICE_EXIT_CODE=0 | ||||||
|     SERVICE_IS_RUNNING="yes" | 		SERVICE_IS_RUNNING="yes" | ||||||
|   else | 	else | ||||||
|     SERVICE_EXIT_CODE=$errorCode | 		SERVICE_EXIT_CODE=$errorCode | ||||||
|     SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | 		SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}" | ||||||
|     [ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | 		[ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE" | ||||||
|   fi | 	fi | ||||||
|   SERVICE_EXIT_CODE=0 | 	SERVICE_EXIT_CODE=0 | ||||||
| fi | fi | ||||||
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| # start the post execute function in background | # start the post execute function in background | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user