2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#!/usr/bin/env bash
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# shellcheck shell=bash  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								##@Version           :  202501291320-git  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# @@Author           :  Jason Hempstead  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@Contact          :  jason@casjaysdev.pro  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@License          :  LICENSE.md  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# @@ReadME           :  zz-nginx.sh --help  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# @@Copyright        :  Copyright: (c) 2025 Jason Hempstead, Casjays Developments  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# @@Created          :  Wednesday, Jan 29, 2025 13:20 EST  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@File             :  zz-nginx.sh  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# @@Description      :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@Changelog        :  New script  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@TODO             :  Better documentation  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@Other            :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@Resource         :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@Terminal App     :  no  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@sudo/root        :  no  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# @@Template         :  other/start-service  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317,SC2329  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# run trap command on exit  
						 
					
						
							
								
									
										
										
										
											2025-10-22 09:14:22 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								trap  'retVal=$?; echo "❌ Fatal error occurred: Exit code $retVal at line $LINENO in command: $BASH_COMMAND"; kill -TERM 1'  ERR 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								trap  'retVal=$?;if [ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ]; then rm -Rf "$SERVICE_PID_FILE"; fi;exit $retVal'  SIGINT SIGTERM SIGPWR 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-10-22 09:14:22 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								SCRIPT_FILE = " $0 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_NAME = "nginx"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SCRIPT_NAME = " $( basename -- " $SCRIPT_FILE "  2>/dev/null) "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Function to exit appropriately based on context  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__script_exit( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  exit_code = " ${ 1 :- 0 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  " ${ BASH_SOURCE [0] } "  !=  " ${ 0 } "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Script is being sourced - use return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  " $exit_code " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Script is being executed - use exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										exit  " $exit_code " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Exit if service is disabled  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -z " $TOR_NGINX_ENABLED "  ]  ||  if  [  " $TOR_NGINX_ENABLED "  !=  "yes"  ] ;  then  export  SERVICE_DISABLED = " $SERVICE_NAME "  &&  __script_exit 0;  fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# 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 :- } "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  [  " $DEBUGGER "  =  "on"  ]  ||  [  -f "/config/.debug"  ] ;  }  &&  echo  "Enabling debugging"  &&  set  -xo pipefail -x$DEBUGGER_OPTIONS  &&  export  DEBUGGER = "on"  ||  set  -o pipefail 
						 
					
						
							
								
									
										
										
										
											2025-10-22 09:14:22 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								export  PATH = "/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"  
						 
					
						
							
								
									
										
										
										
											2025-10-22 09:14:22 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# import the functions file  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  -f "/usr/local/etc/docker/functions/entrypoint.sh"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									. "/usr/local/etc/docker/functions/entrypoint.sh" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
									
										
										
										
											2025-10-22 09:14:22 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# import variables  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  set_env in "/root/env.sh"  "/usr/local/etc/docker/env" /*.sh "/config/env" /*.sh;  do  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									[  -f " $set_env "  ]  &&  . " $set_env " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								done  
						 
					
						
							
								
									
										
										
										
											2025-10-22 09:14:22 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# exit if __start_init_scripts function hasn't been Initialized  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  ! -f "/run/__start_init_scripts.pid"  ] ;  then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  "__start_init_scripts function hasn't been Initialized"  >& 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									SERVICE_IS_RUNNING = "no" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									__script_exit 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Clean up any stale PID file for this service on startup  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  -n " $SERVICE_NAME "  ]  &&  [  -f " /run/init.d/ $SERVICE_NAME .pid "  ] ;  then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									old_pid = $( cat " /run/init.d/ $SERVICE_NAME .pid "  2>/dev/null) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -n " $old_pid "  ]  &&  ! kill  -0 " $old_pid "  2>/dev/null;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " 🧹 Removing stale PID file for  $SERVICE_NAME " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										rm -f " /run/init.d/ $SERVICE_NAME .pid " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Custom functions  
						 
					
						
							
								
									
										
										
										
											2025-06-12 11:57:45 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								__onion_site_dir_is_empty( )  {  [  " $( ls -A " /data/htdocs/onions/ ${ 1 :- $onion_site } "  2>/dev/null |  wc -l) "  -eq 0  ]  ||  return  1;  } 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Script to execute  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								START_SCRIPT = " /usr/local/etc/docker/exec/ $SERVICE_NAME "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Reset environment before executing service  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								RESET_ENV = "no"  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set webroot  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								WWW_ROOT_DIR = "/data/htdocs/www"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Default predefined variables  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								DATA_DIR = "/data/nginx"    # set data directory  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								CONF_DIR = "/config/nginx"  # set config directory  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# set the containers etc directory  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ETC_DIR = "/etc/nginx"  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# set the var dir  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VAR_DIR = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TMP_DIR = "/tmp/nginx"        # set the temp dir  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								RUN_DIR = "/run/nginx"        # set scripts pid dir  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_DIR = "/data/logs/nginx"  # set log directory  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set the working dir  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								WORK_DIR = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# port which service is listening on  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_PORT = "80"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# User to use to launch service - IE: postgres  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								RUNAS_USER = "root"  # normally root  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# User and group in which the service switches to - IE: nginx,apache,mysql,postgres  
						 
					
						
							
								
									
										
										
										
											2025-10-22 10:50:04 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								SERVICE_USER = "root"   # execute command as another user  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_GROUP = "root"  # Set the service group  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set password length  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								RANDOM_PASS_USER = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								RANDOM_PASS_ROOT = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set user and group ID  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_UID = "0"  # set the user id  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_GID = "0"  # set the group id  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# execute command variables - keep single quotes variables will be expanded later  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								EXEC_CMD_BIN = 'nginx'                    # command to execute  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EXEC_CMD_ARGS = '-c $ETC_DIR/nginx.conf'  # command arguments  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EXEC_PRE_SCRIPT = ''                      # execute script before  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Is this service a web server  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								IS_WEB_SERVER = "yes"  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Is this service a database server  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								IS_DATABASE_SERVICE = "no"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Does this service use a database server  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								USES_DATABASE_SERVICE = "no"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set defualt type - [custom,sqlite,redis,postgres,mariadb,mysql,couchdb,mongodb,supabase]  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								DATABASE_SERVICE_TYPE = "sqlite"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Show message before execute  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								PRE_EXEC_MESSAGE = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set the wait time to execute __post_execute function - minutes  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								POST_EXECUTE_WAIT_TIME = "1"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Update path var  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								PATH = " $PATH :. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Lets get containers ip address  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								IP4_ADDRESS = " $( __get_ip4) "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								IP6_ADDRESS = " $( __get_ip6) "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Where to save passwords to  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ROOT_FILE_PREFIX = "/config/secure/auth/root"  # directory to save username/password for root user  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								USER_FILE_PREFIX = "/config/secure/auth/user"  # directory to save username/password for normal user  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# root/admin user info password/random]  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								root_user_name = " ${ NGINX_ROOT_USER_NAME :- } "  # root user name  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								root_user_pass = " ${ NGINX_ROOT_PASS_WORD :- } "  # root user password  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Normal user info [password/random]  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								user_name = " ${ NGINX_USER_NAME :- } "       # normal user name  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								user_pass = " ${ NGINX_USER_PASS_WORD :- } "  # normal user password  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Load variables from config  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[  -f "/config/env/nginx.script.sh"  ]  &&  . "/config/env/nginx.script.sh"  # Generated by my dockermgr script  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -f "/config/env/nginx.sh"  ]  &&  . "/config/env/nginx.sh"                # Overwrite the variabes  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Additional predefined variables  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Additional variables  
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TOR_HIDDEN_SERVICE_DIR = " ${ TOR_HIDDEN_SERVICE_DIR :- $DATA_DIR /hidden } "  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Specifiy custom directories to be created  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ADD_APPLICATION_FILES = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ADD_APPLICATION_DIRS = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								APPLICATION_FILES = " $LOG_DIR / $SERVICE_NAME .log "  
						 
					
						
							
								
									
										
										
										
											2025-10-22 10:08:38 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								APPLICATION_DIRS = " $ETC_DIR   $CONF_DIR   $LOG_DIR   $TMP_DIR   $RUN_DIR   $VAR_DIR   $DATA_DIR "  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Additional config dirs - will be Copied to /etc/$name  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ADDITIONAL_CONFIG_DIRS = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define variables that need to be loaded into the service - escape quotes - var=\"value\",other=\"test\"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								CMD_ENV = ""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Overwrite based on file/directory  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Per Application Variables or imports  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Custom commands to run before copying to /config  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_precopy( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# Define environment 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  hostname = ${ HOSTNAME } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Define actions/commands 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  ! -d " $WWW_ROOT_DIR "  ]  ||  __is_dir_empty " $WWW_ROOT_DIR " ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mkdir -p " $WWW_ROOT_DIR " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  [  -d "/usr/share/httpd/default"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											cp -Rf "/usr/share/httpd/default/."  " $WWW_ROOT_DIR / " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											[  -f " $WWW_ROOT_DIR /hidden_services.html "  ]  &&  rm -Rf " $WWW_ROOT_DIR /hidden_services.html " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  "Welcome"  >" $WWW_ROOT_DIR /index.php " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -d " $WWW_ROOT_DIR /.git "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										rm -Rf " $WWW_ROOT_DIR /.git " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $WWW_ROOT_DIR /.well-known "  ]  ||  mkdir -p " $WWW_ROOT_DIR /.well-known " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __run_precopy_local |  grep -q 'function' ;  then  __run_precopy_local;  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Custom prerun functions - IE setup WWW_ROOT_DIR  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__execute_prerun( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# Define environment 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  hostname = ${ HOSTNAME } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  php_ver = " ${ PHP_VERSION :- 84 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  php_fpm_bin = " $( type  -P php-fpm ||  type  -P php-fpm$$ php_ver ||  false ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Define actions/commands 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -n " $php_fpm_bin "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$php_fpm_bin  --nodaemonize --fpm-config " /etc/php $php_ver /php-fpm.conf "  & 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __execute_prerun_local |  grep -q 'function' ;  then  __execute_prerun_local;  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Run any pre-execution checks  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_pre_execute_checks( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# Set variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  exitStatus = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									__banner " $pre_execute_checks_MessageST " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Put command to execute in parentheses 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									exitStatus = $? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									__banner " $pre_execute_checks_MessageEnd : Status  $exitStatus " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# show exit message 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  $exitStatus  -ne 0  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  "The pre-execution check has failed"  >& 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										[  -f " $SERVICE_PID_FILE "  ]  &&  rm -Rf " $SERVICE_PID_FILE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __run_pre_execute_checks_local |  grep -q 'function' ;  then  __run_pre_execute_checks_local;  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# exit function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $exitStatus 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# use this function to update config files - IE: change port  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__update_conf_files( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  exitCode = 0                                                # default exit code 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  sysname = " ${ SERVER_NAME :- ${ FULL_DOMAIN_NAME :- $HOSTNAME } } "  # set hostname 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  default_host = " $DEFAULT_ONION_SITE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -f " $WWW_ROOT_DIR /default_host.txt "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										default_host = " ${ default_host :- $( <" $WWW_ROOT_DIR /default_host.txt " ) } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										rm -Rf " $WWW_ROOT_DIR /default_host.txt " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# delete files 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									#__rm "" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# custom commands 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# replace variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# __replace "" "" "$CONF_DIR/nginx.conf" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# replace variables recursively 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# __find_replace "" "" "$CONF_DIR" 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 12:13:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  [  -f " $WWW_ROOT_DIR /index.html "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										sed -i 's|REPLACE_ONION_WWW_DIR|' $WWW_ROOT_DIR '|g'  "/data/htdocs/www/index.html" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										[  -n " $default_host "  ]  &&  sed -i 's|REPLACE_DEFAULT_TOR_ADDRESS|' $default_host .onion'|g'  " $WWW_ROOT_DIR /index.html "  ||  sed -i '/REPLACE_DEFAULT_TOR_ADDRESS/d'  " $WWW_ROOT_DIR /index.html " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -f "/data/htdocs/www/index.html"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										sed -i 's|REPLACE_ONION_WWW_DIR|/data/htdocs/www|g'  "/data/htdocs/www/index.html" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										[  -n " $default_host "  ]  &&  sed -i 's|REPLACE_DEFAULT_TOR_ADDRESS|' $default_host .onion'|g'  "/data/htdocs/www/index.html"  ||  sed -i '/REPLACE_DEFAULT_TOR_ADDRESS/d'  "/data/htdocs/www/index.html" 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# define actions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									while  :;  do 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										sleep 30 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										echo  "waiting for tor to start" 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										sites = " $( ls -A /run/tor/sites 2>/dev/null |  wc -l) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  [  ! -f "/tmp/init_tor_services"  ] ;  then  break;  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  "The tor server seems to have started                                    " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  [  " $sites "  -eq 0  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  "No onion sites found in /run/tor/sites"  >& 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  site in "/run/tor/sites" /*;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											onion_site = " $( basename -- $site ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											__onion_site_dir_is_empty " $onion_site "  &&  NEW_SITE = "yes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											[  -d " /data/htdocs/onions/ $onion_site "  ]  ||  mkdir -p " /data/htdocs/onions/ $onion_site " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 12:13:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  [  " $default_host "  =  " $onion_site "  ]  &&  __onion_site_dir_is_empty " $onion_site " ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												cp -Rfa " $WWW_ROOT_DIR /. "  " /data/htdocs/onions/ $onion_site / " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  [  " $NEW_SITE "  =  "yes"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  [  -f "/usr/share/httpd/default/hidden_services.html"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														cp -Rf "/usr/share/httpd/default/hidden_services.html"  " /data/htdocs/onions/ $onion_site /index.html " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													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 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											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 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 12:13:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  [  -f " /config/nginx/vhosts.d/ $onion_site .onion.conf "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												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_WWW_DIR|/data/htdocs/onions/' $onion_site '|g'  " /config/nginx/vhosts.d/ $onion_site .onion.conf " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 12:13:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  [  -f " /data/htdocs/onions/ $onion_site /index.html "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												sed -i 's|REPLACE_ONION_ADDRESS|' $onion_site .onion'|g'  " /data/htdocs/onions/ $onion_site /index.html " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												sed -i 's|REPLACE_DEFAULT_TOR_ADDRESS|' $onion_site '|g'  " /data/htdocs/onions/ $onion_site /index.html " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 12:13:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												sed -i 's|REPLACE_ONION_WWW_DIR|/data/htdocs/onions/' $onion_site '|g'  " /data/htdocs/onions/ $onion_site /index.html " 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 11:33:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											unset  NEW_SITE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " Created  $onion_site .onion in /data/htdocs/onions/ $onion_site " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __update_conf_files_local |  grep -q 'function' ;  then  __update_conf_files_local;  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# exit function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $exitCode 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# function to run before executing  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__pre_execute( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  exitCode = 0                                                # default exit code 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  sysname = " ${ SERVER_NAME :- ${ FULL_DOMAIN_NAME :- $HOSTNAME } } "  # set hostname 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# execute if directories is empty 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# __is_dir_empty "$CONF_DIR" && true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# define actions to run after copying to /config 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# unset unneeded variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									unset  sysname
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Lets wait a few seconds before continuing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									sleep 5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __pre_execute_local |  grep -q 'function' ;  then  __pre_execute_local;  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# exit function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $exitCode 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# function to run after executing  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__post_execute( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  pid = ""                                                     # init pid var 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  retVal = 0                                                   # set default exit code 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  ctime = ${ POST_EXECUTE_WAIT_TIME :- 1 }                         # how long to wait before executing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  waitTime = $(( ctime *  60 ))                                   # convert minutes to seconds 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# wait 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									sleep $waitTime 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# execute commands after waiting 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# show message 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__banner " $postMessageST " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# commands to execute 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										sleep 5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# show exit message 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__banner " $postMessageEnd : Status  $retVal " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									)  2>"/dev/stderr"  |  tee -p -a "/data/logs/init.txt"  & 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pid = $! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ps ax |  awk '{print $1}'  |  grep -v grep |  grep -q " $execPid $"  &&  retVal = 0  ||  retVal = 10 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __post_execute_local |  grep -q 'function' ;  then  __post_execute_local;  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# exit function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $retVal 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# use this function to update config files - IE: change port  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__pre_message( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  exitCode = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -n " $PRE_EXEC_MESSAGE "  ]  &&  eval  echo  " $PRE_EXEC_MESSAGE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# execute commands 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __pre_message_local |  grep -q 'function' ;  then  __pre_message_local;  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# exit function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $exitCode 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# use this function to setup ssl support  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__update_ssl_conf( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  exitCode = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  sysname = " ${ SERVER_NAME :- ${ FULL_DOMAIN_NAME :- $HOSTNAME } } "  # set hostname 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# execute commands 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# allow custom functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  builtin  type  -t __update_ssl_conf_local |  grep -q 'function' ;  then  __update_ssl_conf_local;  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# set exitCode 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $exitCode 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__create_service_env( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  exitCode = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  ! -f " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .sh "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										cat <<EOF | tee -p "/config/env/${SE RVICE_NAME:-$SCRIPT_NAME } .sh"  &>/dev/null
 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# root/admin user info [password/random]  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$NGINX_ROOT_USER_NAME}"   # root user name  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#ENV_ROOT_USER_PASS="${ENV_ROOT_USER_NAME:-$NGINX_ROOT_PASS_WORD}"   # root user password  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#root_user_name="${ENV_ROOT_USER_NAME:-$root_user_name}"                              #  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#root_user_pass="${ENV_ROOT_USER_PASS:-$root_user_pass}"                              #  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#Normal user info [password/random]  
						 
					
						
							
								
									
										
										
										
											2025-01-29 13:43:57 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#ENV_USER_NAME="${ENV_USER_NAME:-$NGINX_USER_NAME}"                  #  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#ENV_USER_PASS="${ENV_USER_PASS:-$NGINX_USER_PASS_WORD}"             #  
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#user_name="${ENV_USER_NAME:-$user_name}"                                             # normal user name  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#user_pass="${ENV_USER_PASS:-$user_pass}"                                             # normal user password  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EOF
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  ! -f " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .local.sh "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__run_precopy_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__execute_prerun_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__run_pre_execute_checks_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__update_conf_files_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__pre_execute_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__post_execute_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__pre_message_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__update_ssl_conf_local( )  {  true;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									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 } .local.sh "  ||  exitCode = $(( exitCode +  1 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $exitCode 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# script to start server  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_start_script( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  runExitCode = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  workdir = " $( eval  echo  " ${ WORK_DIR :- } " ) "                    # expand variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  cmd = " $( eval  echo  " ${ EXEC_CMD_BIN :- } " ) "                    # expand variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  args = " $( eval  echo  " ${ EXEC_CMD_ARGS :- } " ) "                  # expand variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  name = " $( eval  echo  " ${ EXEC_CMD_NAME :- } " ) "                  # expand variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  pre = " $( eval  echo  " ${ EXEC_PRE_SCRIPT :- } " ) "                 # expand variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  extra_env = " $( eval  echo  " ${ CMD_ENV //,/  } " ) "                # 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  path = " $( eval  echo  " $PATH " ) "                               # expand variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									local  message = " $( eval  echo  "" ) "                                 # expand variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									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 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -z " $cmd "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										__post_execute 2>"/dev/stderr"  |  tee -p -a "/data/logs/init.txt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										retVal = $? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " Initializing  $SCRIPT_NAME  has completed " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										exit  $retVal 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# ensure the command exists 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  [  ! -x " $cmd "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " $name  is not a valid executable " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# check and exit if already running 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  __proc_check " $name "  ||  __proc_check " $cmd " ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " $name  is already running "  >& 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# show message if env exists 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  [  -n " $cmd "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												[  -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 = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  [  -n " $pre "  ]  &&  [  -n " $( command  -v " $pre "  2>/dev/null) "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												export  cmd_exec = " $pre   $cmd   $args " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												message = " Starting service:  $name   $args  through  $pre " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												export  cmd_exec = " $cmd   $args " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												message = " Starting service:  $name   $args " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											[  -n " $su_exec "  ]  &&  echo  " using  $su_exec "  |  tee -a -p "/data/logs/init.txt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " $message "  |  tee -a -p "/data/logs/init.txt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											su_cmd touch " $SERVICE_PID_FILE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											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 " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												execute_command = " $( __trim " $su_exec   $env_command   $cmd_exec " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  [  ! -f " $START_SCRIPT "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													cat <<EOF >" $START_SCRIPT " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#!/usr/bin/env bash
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								trap  'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode'  EXIT 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  -Eeo pipefail 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Setting up $cmd to run as ${SERVICE_USER:-root} with env  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								retVal = 10  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cmd = " $cmd "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_NAME = " $SERVICE_NAME "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_PID_FILE = " $SERVICE_PID_FILE "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$execute_command  2>"/dev/stderr"  >>" $LOG_DIR / $SERVICE_NAME .log "  &  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								execPid = \$ ! 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								checkPID = "\$(ps ax | awk '{print \$1}' | grep -v grep | grep " \$ execPid$" || false)"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n "\$execPid"   ]  &&  [  -n "\$checkPID"  ]  &&  echo  "\$execPid"  >"\$SERVICE_PID_FILE"  &&  retVal = 0  ||  retVal = 10  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  "\$retVal"  =  0  ]  &&  echo  "\$cmd has been started"  ||  echo  " Failed to start  $execute_command "  >& 2  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  \$ retVal 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EOF
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  [  ! -f " $START_SCRIPT "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													execute_command = " $( __trim " $su_exec   $cmd_exec " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													cat <<EOF >" $START_SCRIPT " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#!/usr/bin/env bash
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								trap  'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode'  EXIT 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  -Eeo pipefail 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Setting up $cmd to run as ${SERVICE_USER:-root}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								retVal = 10  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cmd = " $cmd "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_NAME = " $SERVICE_NAME "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_PID_FILE = " $SERVICE_PID_FILE "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$execute_command  2>>"/dev/stderr"  >>" $LOG_DIR / $SERVICE_NAME .log "  &  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								execPid = \$ ! 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								checkPID = "\$(ps ax | awk '{print \$1}' | grep -v grep | grep " \$ execPid$" || false)"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n "\$execPid"   ]  &&  [  -n "\$checkPID"  ]  &&  echo  "\$execPid"  >"\$SERVICE_PID_FILE"  &&  retVal = 0  ||  retVal = 10  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  "\$retVal"  =  0  ]  &&  echo  "\$cmd has been started"  ||  echo  " Failed to start  $execute_command "  >& 2  >& 2  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  \$ retVal 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EOF
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										[  -x " $START_SCRIPT "  ]  ||  chmod 755  -Rf " $START_SCRIPT " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										[  " $CONTAINER_INIT "  =  "yes"  ]  ||  eval  sh -c " $START_SCRIPT " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										runExitCode = $? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $runExitCode 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# username and password actions  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_secure_function( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									local  filesperms
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -n " $user_name "  ]  ||  [  -n " $user_pass "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  filesperms in " ${ USER_FILE_PREFIX } " /*;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  [  -e " $filesperms "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												chmod -Rf 600  " $filesperms " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												chown -Rf $SERVICE_USER :$SERVICE_USER  " $filesperms "  2>/dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										done  2>/dev/null |  tee -p -a "/data/logs/init.txt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -n " $root_user_name "  ]  ||  [  -n " $root_user_pass "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  filesperms in " ${ ROOT_FILE_PREFIX } " /*;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  [  -e " $filesperms "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												chmod -Rf 600  " $filesperms " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												chown -Rf $SERVICE_USER :$SERVICE_USER  " $filesperms "  2>/dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										done  2>/dev/null |  tee -p -a "/data/logs/init.txt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									unset  filesperms
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Allow ENV_ variable - Import env file  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .sh "  &&  . " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .sh " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .local.sh "  &&  . " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .local.sh " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_EXIT_CODE = 0  # default exit code  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# application specific  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EXEC_CMD_NAME = " $( basename -- " $EXEC_CMD_BIN " ) "                              # set the binary name  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_PID_FILE = " /run/init.d/ $EXEC_CMD_NAME .pid "                           # set the pid file location  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SERVICE_PID_NUMBER = " $( __pgrep) "                                             # check if running  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EXEC_CMD_BIN = " $( type  -P " $EXEC_CMD_BIN "  ||  echo  " $EXEC_CMD_BIN " ) "           # set full path  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EXEC_PRE_SCRIPT = " $( type  -P " $EXEC_PRE_SCRIPT "  ||  echo  " $EXEC_PRE_SCRIPT " ) "  # set full path  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Only run check  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__check_service " $1 "  &&  SERVICE_IS_RUNNING = yes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ensure needed directories exists  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -d " $LOG_DIR "  ]  ||  mkdir -p " $LOG_DIR "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -d " $RUN_DIR "  ]  ||  mkdir -p " $RUN_DIR "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# create auth directories  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $USER_FILE_PREFIX "  ]  &&  {  [  -d " $USER_FILE_PREFIX "  ]  ||  mkdir -p " $USER_FILE_PREFIX " ;  }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $ROOT_FILE_PREFIX "  ]  &&  {  [  -d " $ROOT_FILE_PREFIX "  ]  ||  mkdir -p " $ROOT_FILE_PREFIX " ;  }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $RUNAS_USER "  ]  ||  RUNAS_USER = "root"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $SERVICE_USER "  ]  ||  SERVICE_USER = " $RUNAS_USER "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $SERVICE_GROUP "  ]  ||  SERVICE_GROUP = " ${ SERVICE_USER :- $RUNAS_USER } "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  " $IS_WEB_SERVER "  =  "yes"  ]  &&  RESET_ENV = "yes"  &&  __is_htdocs_mounted 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  " $IS_WEB_SERVER "  =  "yes"  ]  &&  [  -z " $SERVICE_PORT "  ]  &&  SERVICE_PORT = "80"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Database env  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  " $IS_DATABASE_SERVICE "  =  "yes"  ]  ||  [  " $USES_DATABASE_SERVICE "  =  "yes"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RESET_ENV = "no" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									DATABASE_CREATE = " ${ ENV_DATABASE_CREATE :- $DATABASE_CREATE } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									DATABASE_USER_NORMAL = " ${ ENV_DATABASE_USER :- ${ DATABASE_USER_NORMAL :- $user_name } } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									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_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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " $DATABASE_PASS_NORMAL "  >" ${ USER_FILE_PREFIX } /db_pass_user " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  [  -n " $DATABASE_PASS_ROOT "  ]  &&  [  ! -f " ${ ROOT_FILE_PREFIX } /db_pass_root "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " $DATABASE_PASS_ROOT "  >" ${ ROOT_FILE_PREFIX } /db_pass_root " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]]  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  " $DATABASE_SERVICE_TYPE "  =  "custom"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_CUSTOM :- /admin/dbadmin } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "redis"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "redis"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_REDIS :- /admin/redis } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "postgres"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "postgres"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_POSTGRES :- /admin/postgres } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "mariadb"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "mariadb"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_MARIADB :- /admin/mysql } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "mysql"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "mysql"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_MYSQL :- /admin/mysql } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "couchdb"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "couchdb"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_COUCHDB :- /admin/couchdb } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "mongodb"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "mongodb"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_MONGODB :- /admin/mongodb } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "supabase"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "supabase"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_SUPBASE :- /admin/supabase } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								elif  [  " $SERVICE_NAME "  =  "sqlite"  ]  ||  [  " $DATABASE_SERVICE_TYPE "  =  "sqlite"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DATABASE_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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  SERVER_ADMIN_URL = " ${ SERVER_ADMIN_URL_SQLITE :- /admin/sqlite } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									[  -d " $DATABASE_DIR "  ]  ||  mkdir -p " $DATABASE_DIR " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									chmod 777  " $DATABASE_DIR " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $DATABASE_ADMIN_WWW_ROOT "  ]  &&  {  [  ! -d " $DATABASE_ADMIN_WWW_ROOT "  ]  ||  mkdir -p " ${ DATABASE_ADMIN_WWW_ROOT } " ;  }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Allow variables via imports - Overwrite existing  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -f " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .sh "  ]  &&  . " /config/env/ ${ SERVICE_NAME :- $SCRIPT_NAME } .sh "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# set password to random if variable is random  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  " $user_pass "  =  "random"  ]  &&  user_pass = " $( __random_password ${ RANDOM_PASS_USER :- 16 } ) "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  " $root_user_pass "  =  "random"  ]  &&  root_user_pass = " $( __random_password ${ RANDOM_PASS_ROOT :- 16 } ) "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Allow setting initial users and passwords via environment and save to file  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $user_name "  ]  &&  echo  " $user_name "  >" ${ USER_FILE_PREFIX } / ${ SERVICE_NAME } _name "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $user_pass "  ]  &&  echo  " $user_pass "  >" ${ USER_FILE_PREFIX } / ${ SERVICE_NAME } _pass "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $root_user_name "  ]  &&  echo  " $root_user_name "  >" ${ ROOT_FILE_PREFIX } / ${ SERVICE_NAME } _name "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -n " $root_user_pass "  ]  &&  echo  " $root_user_pass "  >" ${ ROOT_FILE_PREFIX } / ${ SERVICE_NAME } _pass "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# create needed dirs  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -d " $LOG_DIR "  ]  ||  mkdir -p " $LOG_DIR "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  -d " $RUN_DIR "  ]  ||  mkdir -p " $RUN_DIR "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Allow per init script usernames and passwords  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " ${ USER_FILE_PREFIX } / ${ SERVICE_NAME } _name "  &&  user_name = " $( <" ${ USER_FILE_PREFIX } / ${ SERVICE_NAME } _name " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " ${ USER_FILE_PREFIX } / ${ SERVICE_NAME } _pass "  &&  user_pass = " $( <" ${ USER_FILE_PREFIX } / ${ SERVICE_NAME } _pass " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " ${ ROOT_FILE_PREFIX } / ${ SERVICE_NAME } _name "  &&  root_user_name = " $( <" ${ ROOT_FILE_PREFIX } / ${ SERVICE_NAME } _name " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " ${ ROOT_FILE_PREFIX } / ${ SERVICE_NAME } _pass "  &&  root_user_pass = " $( <" ${ ROOT_FILE_PREFIX } / ${ SERVICE_NAME } _pass " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " ${ USER_FILE_PREFIX } /db_pass_user "  &&  DATABASE_PASS_NORMAL = " $( <" ${ USER_FILE_PREFIX } /db_pass_user " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__file_exists_with_content " ${ ROOT_FILE_PREFIX } /db_pass_root "  &&  DATABASE_PASS_ROOT = " $( <" ${ ROOT_FILE_PREFIX } /db_pass_root " ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# set hostname for script  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sysname = " ${ SERVER_NAME :- ${ FULL_DOMAIN_NAME :- $HOSTNAME } } "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__create_service_env
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Setup /config directories  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__init_config_etc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# pre-run function  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__execute_prerun
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# create user if needed  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__create_service_user " $SERVICE_USER "  " $SERVICE_GROUP "  " ${ WORK_DIR :- /home/ $SERVICE_USER } "  " ${ SERVICE_UID :- } "  " ${ SERVICE_GID :- } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Modify user if needed  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__set_user_group_id $SERVICE_USER  ${ SERVICE_UID :- }  ${ SERVICE_GID :- } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Create base directories  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__setup_directories
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# set switch user command  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__switch_to_user
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Initialize the home/working dir  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__init_working_dir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# show init message  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__pre_message
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__initialize_db_users
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Initialize ssl  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__update_ssl_conf
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__update_ssl_certs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set permissions in ${USER_FILE_PREFIX} and ${ROOT_FILE_PREFIX}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_secure_function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_precopy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Copy /config to /etc  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  config_2_etc in $CONF_DIR  $ADDITIONAL_CONFIG_DIRS ;  do  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									__initialize_system_etc " $config_2_etc "  2>/dev/stderr |  tee -p -a "/data/logs/init.txt" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Replace variables  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__initialize_replace_variables " $ETC_DIR "  " $CONF_DIR "  " $ADDITIONAL_CONFIG_DIRS "  " $WWW_ROOT_DIR " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__initialize_database
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Updating config files  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__update_conf_files
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# run the pre execute commands  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__pre_execute
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Set permissions  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__fix_permissions " $SERVICE_USER "  " $SERVICE_GROUP " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_pre_execute_checks 2>/dev/stderr |  tee -a -p "/data/logs/entrypoint.log"  "/data/logs/init.txt"  ||  return  20 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__run_start_script 2>>/dev/stderr |  tee -p -a "/data/logs/entrypoint.log" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								errorCode = $?  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  -n " $EXEC_CMD_BIN "  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2025-10-22 08:53:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  [  " $errorCode "  -eq 0  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SERVICE_EXIT_CODE = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SERVICE_IS_RUNNING = "yes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SERVICE_EXIT_CODE = $errorCode 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SERVICE_IS_RUNNING = " ${ SERVICE_IS_RUNNING :- no } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										[  -s " $SERVICE_PID_FILE "  ]  ||  rm -Rf " $SERVICE_PID_FILE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									SERVICE_EXIT_CODE = 0 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-06 09:09:27 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# start the post execute function in background  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__post_execute 2>"/dev/stderr"  |  tee -p -a "/data/logs/init.txt"  & 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								__banner " Initializing of  $SERVICE_NAME  has completed with statusCode:  $SERVICE_EXIT_CODE "  |  tee -p -a "/data/logs/entrypoint.log"  "/data/logs/init.txt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
						 
					
						
							
								
									
										
										
										
											2025-10-22 10:22:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								__script_exit $SERVICE_EXIT_CODE