🔧 Update configuration files 🔧

Dockerfile
.env.scripts
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-tor.sh
rootfs/usr/local/etc/docker/init.d/02-named.sh
rootfs/usr/local/etc/docker/init.d/03-nginx.sh
rootfs/usr/local/etc/docker/init.d/04-php-fpm.sh
This commit is contained in:
2026-05-18 15:38:24 -04:00
parent 1a11144393
commit 46903c9a87
8 changed files with 223 additions and 270 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202605051439-git ##@Version : 202605131434-git
# @@Author : CasjaysDev # @@Author : CasjaysDev
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro> # @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
# @@License : MIT # @@License : MIT
@@ -77,7 +77,7 @@ DEFAULT_DATA_DIR="/usr/local/share/template-files/data"
DEFAULT_CONF_DIR="/usr/local/share/template-files/config" DEFAULT_CONF_DIR="/usr/local/share/template-files/config"
DEFAULT_TEMPLATE_DIR="/usr/local/share/template-files/defaults" DEFAULT_TEMPLATE_DIR="/usr/local/share/template-files/defaults"
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
ENV_PACKAGES="bind bind-tools bind-dnssec-root bind-plugins bash" ENV_PACKAGES="bind bind-tools bind-dnssec-root bind-plugins nginx php83 php83-fpm php83-opcache tor bash tini"
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
# ex: ts=2 sw=2 et filetype=sh # ex: ts=2 sw=2 et filetype=sh
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
+5 -15
View File
@@ -1,7 +1,7 @@
# Docker image for bind using the alpine template # Docker image for bind using the alpine template
ARG IMAGE_NAME="bind" ARG IMAGE_NAME="bind"
ARG PHP_SERVER="bind" ARG PHP_SERVER="bind"
ARG BUILD_DATE="202605101200" ARG BUILD_DATE="202605131434"
ARG LANGUAGE="en_US.UTF-8" ARG LANGUAGE="en_US.UTF-8"
ARG TIMEZONE="America/New_York" ARG TIMEZONE="America/New_York"
ARG WWW_ROOT_DIR="/usr/local/share/httpd/default" ARG WWW_ROOT_DIR="/usr/local/share/httpd/default"
@@ -54,7 +54,7 @@ ARG PHP_SERVER
ARG SHELL_OPTS ARG SHELL_OPTS
ARG PATH ARG PATH
ARG PACK_LIST="bind bind-tools bind-dnssec-root bind-plugins bash " ARG PACK_LIST="bind bind-tools bind-dnssec-root bind-plugins nginx php83 php83-fpm php83-opcache tor bash tini "
ENV ENV=~/.profile ENV ENV=~/.profile
ENV SHELL="/bin/sh" ENV SHELL="/bin/sh"
@@ -76,13 +76,7 @@ RUN set -e; \
RUN set -e; \ RUN set -e; \
echo "Setting up prerequisites"; \ echo "Setting up prerequisites"; \
apk --no-cache add bash; \ true
SH_CMD="$(which sh 2>/dev/null||command -v sh 2>/dev/null)"; \
BASH_CMD="$(which bash 2>/dev/null||command -v bash 2>/dev/null)"; \
[ -x "$BASH_CMD" ] && symlink "$BASH_CMD" "/bin/sh" || true; \
[ -x "$BASH_CMD" ] && symlink "$BASH_CMD" "/usr/bin/sh" || true; \
[ -x "$BASH_CMD" ] && [ "$SH_CMD" != "/bin/sh" ] && symlink "$BASH_CMD" "$SH_CMD" || true; \
[ -n "$BASH_CMD" ] && sed -i 's|root:x:.*|root:x:0:0:root:/root:'$BASH_CMD'|g' "/etc/passwd" || true
ENV SHELL="/bin/bash" ENV SHELL="/bin/bash"
SHELL [ "/bin/bash", "-c" ] SHELL [ "/bin/bash", "-c" ]
@@ -97,12 +91,7 @@ RUN echo "Initializing the system"; \
RUN echo "Creating and editing system files "; \ RUN echo "Creating and editing system files "; \
$SHELL_OPTS; \ $SHELL_OPTS; \
rm -Rf "/etc/apk/repositories"; \ [ -f "/root/.profile" ] || touch "/root/.profile"; \
[ "$DISTRO_VERSION" = "latest" ] && DISTRO_VERSION="edge";[ "$DISTRO_VERSION" = "edge" ] || DISTRO_VERSION="v${DISTRO_VERSION}"; \
echo "http://dl-cdn.alpinelinux.org/alpine/${DISTRO_VERSION}/main" >>"/etc/apk/repositories"; \
echo "http://dl-cdn.alpinelinux.org/alpine/${DISTRO_VERSION}/community" >>"/etc/apk/repositories"; \
if [ "${DISTRO_VERSION}" = "edge" ]; then echo "http://dl-cdn.alpinelinux.org/alpine/${DISTRO_VERSION}/testing" >>"/etc/apk/repositories";fi; \
apk update; apk upgrade --no-cache; \
if [ -f "/root/docker/setup/01-system.sh" ];then echo "Running the system script";/root/docker/setup/01-system.sh||{ echo "Failed to execute /root/docker/setup/01-system.sh" >&2 && exit 10; };echo "Done running the system script";fi; \ if [ -f "/root/docker/setup/01-system.sh" ];then echo "Running the system script";/root/docker/setup/01-system.sh||{ echo "Failed to execute /root/docker/setup/01-system.sh" >&2 && exit 10; };echo "Done running the system script";fi; \
echo "" echo ""
@@ -148,6 +137,7 @@ RUN echo "Custom Settings"; \
$SHELL_OPTS; \ $SHELL_OPTS; \
echo "" echo ""
RUN echo "Setting up users and scripts "; \ RUN echo "Setting up users and scripts "; \
$SHELL_OPTS; \ $SHELL_OPTS; \
if [ -f "/root/docker/setup/04-users.sh" ];then echo "Running the users script";/root/docker/setup/04-users.sh||{ echo "Failed to execute /root/docker/setup/04-users.sh" >&2 && exit 10; };echo "Done running the users script";fi; \ if [ -f "/root/docker/setup/04-users.sh" ];then echo "Running the users script";/root/docker/setup/04-users.sh||{ echo "Failed to execute /root/docker/setup/04-users.sh" >&2 && exit 10; };echo "Done running the users script";fi; \
+8 -2
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck shell=bash # shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202602061352-git ##@Version : 202605131434-git
# @@Author : Jason Hempstead # @@Author : Jason Hempstead
# @@Contact : jason@casjaysdev.pro # @@Contact : jason@casjaysdev.pro
# @@License : WTFPL # @@License : WTFPL
@@ -25,7 +25,13 @@ trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ]
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
# setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html # setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
[ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}" [ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}"
{ [ "$DEBUGGER" = "on" ] || [ -f "/config/.debug" ]; } && echo "Enabling debugging" && set -o pipefail -x$DEBUGGER_OPTIONS && export DEBUGGER="on" || set -o pipefail if [ "$DEBUGGER" = "on" ] || [ -f "/config/.debug" ]; then
echo "Enabling debugging"
set -o pipefail -x$DEBUGGER_OPTIONS
export DEBUGGER="on"
else
set -o pipefail
fi
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin" PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck shell=bash # shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202602061352-git ##@Version : 202605051922-git
# @@Author : Jason Hempstead # @@Author : Jason Hempstead
# @@Contact : git-admin@casjaysdev.pro # @@Contact : git-admin@casjaysdev.pro
# @@License : LICENSE.md # @@License : LICENSE.md
@@ -31,7 +31,7 @@ else
set -o pipefail set -o pipefail
fi fi
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__remove_extra_spaces() { sed 's/\( \)*/\1/g;s|^ ||g'; } __remove_extra_spaces() { sed -E 's/ +/ /g; s|^ ||'; }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__log_debug() { __log_debug() {
[ "$DEBUGGER" = "on" ] && echo "[DEBUG] $*" >&2 [ "$DEBUGGER" = "on" ] && echo "[DEBUG] $*" >&2
@@ -76,201 +76,121 @@ __rm() {
fi fi
return 0 return 0
} }
__grep_test() { __grep_test() { grep -sh "$1" "$2" 2>/dev/null | grep -qwF "${3:-$1}"; }
if grep -sh "$1" "$2" 2>/dev/null | grep -qwF "${3:-$1}"; then
return 0
else
return 1
fi
}
__netstat() { __netstat() {
if [ -n "$(command -v netstat 2>/dev/null)" ]; then command -v netstat &>/dev/null || {
netstat "$@" 2>/dev/null
else
[ "$DEBUGGER" = "on" ] && echo "Warning: netstat command not found" >&2 [ "$DEBUGGER" = "on" ] && echo "Warning: netstat command not found" >&2
return 10 return 10
fi }
netstat "$@" 2>/dev/null
} }
__cd() { __cd() {
if [ ! -d "$1" ]; then [ -d "$1" ] || mkdir -p "$1" 2>/dev/null || return 1
mkdir -p "$1" 2>/dev/null || return 1
fi
builtin cd "$1" || return 1 builtin cd "$1" || return 1
} }
__is_in_file() { __is_in_file() { [ -e "$2" ] && grep -Rsq "$1" "$2" 2>/dev/null; }
if [ -e "$2" ] && grep -Rsq "$1" "$2" 2>/dev/null; then __curl() { curl -q -sfI --max-time 3 -k -o /dev/null "$@" 2>/dev/null || return 10; }
return 0
else
return 1
fi
}
__curl() {
if curl -q -sfI --max-time 3 -k -o /dev/null "$@" 2>/dev/null; then
return 0
else
return 10
fi
}
__find() { __find() {
if find "$1" -mindepth 1 -type ${2:-f,d} 2>/dev/null | grep '.'; then local result
return 0 result=$(find "$1" -mindepth 1 -type "${2:-f,d}" 2>/dev/null)
else [ -n "$result" ] || return 10
return 10 printf '%s\n' "$result"
fi
} }
__pcheck() { __pcheck() {
if [ -n "$(which pgrep 2>/dev/null)" ] && pgrep -x "$1" &>/dev/null; then command -v pgrep &>/dev/null && pgrep -x "$1" &>/dev/null || return 10
return 0
else
return 10
fi
}
__file_exists_with_content() {
if [ -n "$1" ] && [ -f "$1" ] && [ -s "$1" ]; then
return 0
else
return 2
fi
}
__sed() {
if sed -i 's|'$1'|'$2'|g' "$3" 2>/dev/null; then
return 0
elif sed -i "s|$1|$2|g" "$3" 2>/dev/null; then
return 0
else
return 0
fi
} }
__file_exists_with_content() { [ -n "$1" ] && [ -f "$1" ] && [ -s "$1" ] || return 2; }
__sed() { sed -i "s|$1|$2|g" "$3" 2>/dev/null || return 1; }
__ps() { __ps() {
if [ -f "$(type -P ps 2>/dev/null)" ]; then command -v ps &>/dev/null || return 10
if ps "$@" 2>/dev/null | sed 's|:||g' | grep -Fw " ${1:-$SERVICE_NAME}$"; then ps "$@" 2>/dev/null | sed 's|:||g' | grep -Fw " ${1:-$SERVICE_NAME}$" || return 10
return 0
else
return 10
fi
else
return 10
fi
} }
__is_dir_empty() { __is_dir_empty() {
if [ -n "$1" ]; then [ -n "$1" ] && [ -d "$1" ] || return 1
if [ "$(ls -A "$1" 2>/dev/null | wc -l)" -eq 0 ]; then [ -z "$(ls -A "$1" 2>/dev/null)" ]
return 0
else
return 1
fi
else
return 1
fi
} }
__get_ip6() { __get_ip6() {
local ip6 ip a 2>/dev/null | awk '/^[[:space:]]*inet6 / {
ip6="$(ip a 2>/dev/null | grep -w 'inet6' | awk '{print $2}' | grep -vE '^::1|^fe' | sed 's|/.*||g' | head -n1 | grep '.')" split($2, a, "/"); ip = a[1]
if [ -n "$ip6" ]; then if (ip !~ /^::1$/ && ip !~ /^fe/) { print ip; exit }
echo "$ip6" }'
else
echo ''
fi
} }
__get_ip4() { __get_ip4() {
local ip4 local ip4
ip4="$(ip a 2>/dev/null | grep -w 'inet' | awk '{print $2}' | grep -vE '^127.0.0' | sed 's|/.*||g' | head -n1 | grep '.')" ip4=$(ip a 2>/dev/null | awk '/^[[:space:]]*inet / {
if [ -n "$ip4" ]; then split($2, a, "/"); ip = a[1]
echo "$ip4" if (ip !~ /^127\.0\.0/) { print ip; exit }
else }')
echo '127.0.0.1' echo "${ip4:-127.0.0.1}"
fi
} }
__find_and_remove() { __find_and_remove() {
find "${2:-/etc}" -iname "$1" -exec rm -Rfv {} \; 2>/dev/null || true find "${2:-/etc}" -iname "$1" -exec rm -Rfv {} \; 2>/dev/null || true
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__pgrep() { __pgrep() {
local count=3 local srvc="$1" count=3
local srvc="${1:-SERVICE_NAME}" [ -z "$srvc" ] && return 10
local found=0
if [ -z "$srvc" ] || [ "$srvc" = "SERVICE_NAME" ]; then
return 10
fi
while [ $count -ge 0 ]; do while [ $count -ge 0 ]; do
if pgrep -x "$srvc" >/dev/null 2>&1; then pgrep -x "$srvc" &>/dev/null && return 0
found=1 pgrep -f "$srvc" &>/dev/null && return 0
break ps -ef 2>/dev/null | grep -v 'grep' | grep -qw "$srvc" && return 0
elif pgrep -f "$srvc" >/dev/null 2>&1; then [ $count -gt 0 ] && sleep 1
found=1
break
elif ps -ef 2>/dev/null | grep -v grep | grep -qw "$srvc"; then
found=1
break
fi
if [ $count -gt 0 ]; then
sleep 1
fi
count=$((count - 1)) count=$((count - 1))
done done
if [ $found -eq 1 ]; then return 10
return 0
else
return 10
fi
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__find_file_relative() { __find_file_relative() {
if [ ! -e "$1" ]; then [ -e "$1" ] || return 0
return 0 find "$1"/* -not -path '*env/*' -not -path '.git*' -type f 2>/dev/null \
fi | sort -u \
find "$1"/* -not -path '*env/*' -not -path '.git*' -type f 2>/dev/null | sed 's|'$1'/||g' | sort -u | grep -v '^$' | grep '.' || true | sed "s|^$1/||" || true
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__find_directory_relative() { __find_directory_relative() {
if [ ! -d "$1" ]; then [ -d "$1" ] || return 0
return 0 find "$1"/* -not -path '*env/*' -not -path '.git*' -type d 2>/dev/null \
fi | sort -u \
find "$1"/* -not -path '*env/*' -not -path '.git*' -type d 2>/dev/null | sed 's|'$1'/||g' | sort -u | grep -v '^$' | grep '.' || true | sed "s|^$1/||" || true
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__pid_exists() { __pid_exists() { [ -n "$1" ] && [ -d "/proc/$1" ]; }
local result=""
result="$(ps -ax --no-header 2>/dev/null | sed 's/^[[:space:]]*//g' | awk -F' ' '{print $1}' | sed 's|:||g' | grep '[0-9]' | sort -uV | grep "^$1$" 2>/dev/null || echo '')"
if [ -n "$result" ]; then
return 0
else
return 1
fi
}
__is_running() { __is_running() {
local result="" local pat="$1"
result="$(ps -eo args --no-header 2>/dev/null | awk '{print $1,$2,$3}' | sed 's|:||g' | sort -u | grep -vE 'grep|COMMAND|awk|tee|ps|sed|sort|tail' | grep "$1" | grep "${2:-^}" 2>/dev/null || echo '')" [ -n "$2" ] && pat="$pat.*$2"
if [ -n "$result" ]; then if command -v pgrep &>/dev/null; then
return 0 pgrep -f "$pat" &>/dev/null
else else
return 1 ps -eo args 2>/dev/null | grep -v grep | grep -Eq "$pat"
fi fi
} }
__get_pid() { __get_pid() {
local result=""
if [ -z "$1" ]; then if [ -z "$1" ]; then
[ "$DEBUGGER" = "on" ] && echo "Warning: __get_pid called without process name" >&2 [ "$DEBUGGER" = "on" ] && echo "Warning: __get_pid called without process name" >&2
return 1 return 1
fi fi
result="$(ps -ax --no-header 2>/dev/null | sed 's/^[[:space:]]*//g;s|;||g;s|:||g' | awk '{print $1,$5}' | sed 's|:||g' | grep "$1$" | grep -v 'grep' | awk -F' ' '{print $1}' | grep '[0-9]' | sort -uV | head -n1 | grep '.' 2>/dev/null || echo '')" local pid
if [ -n "$result" ]; then pid=$(pgrep -x "$1" 2>/dev/null | head -n1)
echo "$result" if [ -n "$pid" ]; then
echo "$pid"
return 0 return 0
else
[ "$DEBUGGER" = "on" ] && echo "Debug: No PID found for process: $1" >&2
return 1
fi fi
[ "$DEBUGGER" = "on" ] && echo "Debug: No PID found for process: $1" >&2
return 1
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__format_variables() { printf '%s\n' "${@//,/ }" | tr ' ' '\n' | sort -RVu | grep -v '^$' | tr '\n' ' ' | __clean_variables | grep '.' || return 0; } __format_variables() {
local input="${*//,/ }"
[ -z "$input" ] && return 0
printf '%s\n' $input | sort -Ru | tr '\n' ' '
}
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__clean_variables() { __clean_variables() {
local var="$*" local var="$*"
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters var="${var#"${var%%[![:space:]]*}"}"
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters var="${var%"${var##*[![:space:]]}"}"
var="$(printf '%s\n' "$var" | sed 's/\( \)*/\1/g;s|^ ||g')" while [[ 202605051922-gitar == *" "* ]]; do var="${var// / }"; done
printf '%s' "$var" | grep -v '^$' [ -n "202605051922-gitar" ] && printf '%s' "$var"
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__no_exit() { __no_exit() {
@@ -284,7 +204,8 @@ __no_exit() {
# pid file from a prior container life (docker restart) would otherwise # pid file from a prior container life (docker restart) would otherwise
# cause us to exit instead of entering the monitor loop. # cause us to exit instead of entering the monitor loop.
if [ -f "/run/.no_exit.pid" ]; then if [ -f "/run/.no_exit.pid" ]; then
no_exit_pid="$(cat /run/.no_exit.pid 2>/dev/null)" local no_exit_pid
no_exit_pid=$(<"/run/.no_exit.pid") 2>/dev/null
if [ -n "$no_exit_pid" ] && kill -0 "$no_exit_pid" 2>/dev/null; then if [ -n "$no_exit_pid" ] && kill -0 "$no_exit_pid" 2>/dev/null; then
return 0 return 0
fi fi
@@ -324,10 +245,10 @@ __no_exit() {
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__trim() { __trim() {
local var="${*//;/ }" local var="${*//;/ }"
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters var="${var#"${var%%[![:space:]]*}"}"
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters var="${var%"${var##*[![:space:]]}"}"
var="$(echo "$var" | __remove_extra_spaces | sed "s| |; |g;s|;$| |g" | __remove_extra_spaces)" while [[ 202605051922-gitar == *" "* ]]; do var="${var// / }"; done
printf '%s' "$var" | sed 's|;||g' | grep -v '^$' [ -n "202605051922-gitar" ] && printf '%s' "$var"
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__banner() { __banner() {
@@ -349,17 +270,21 @@ __service_banner() {
printf '# - - - %s %-*s %s - - - #\n' "$icon" "$text_width" "$full_message" "$icon" printf '# - - - %s %-*s %s - - - #\n' "$icon" "$text_width" "$full_message" "$icon"
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__find_php_bin() { find -L '/usr'/*bin -maxdepth 4 -name 'php-fpm*' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_php_bin() { find -L '/usr'/*bin -maxdepth 4 -name 'php-fpm*' 2>/dev/null | head -n1; }
__find_php_ini() { find -L '/etc' -maxdepth 4 -name 'php.ini' 2>/dev/null | head -n1 | sed 's|/php.ini||g' | grep '.' || echo ''; } __find_php_ini() {
local f
f=$(find -L '/etc' -maxdepth 4 -name 'php.ini' 2>/dev/null | head -n1)
[ -n "$f" ] && printf '%s\n' "${f%/php.ini}"
}
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__find_nginx_conf() { find -L '/etc' -maxdepth 4 -name 'nginx.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_nginx_conf() { find -L '/etc' -maxdepth 4 -name 'nginx.conf' 2>/dev/null | head -n1; }
__find_caddy_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'caddy.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_caddy_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'caddy.conf' 2>/dev/null | head -n1; }
__find_lighttpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'lighttpd.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_lighttpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'lighttpd.conf' 2>/dev/null | head -n1; }
__find_cherokee_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'cherokee.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_cherokee_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'cherokee.conf' 2>/dev/null | head -n1; }
__find_httpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'httpd.conf' -o -iname 'apache2.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_httpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'httpd.conf' -o -iname 'apache2.conf' 2>/dev/null | head -n1; }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__find_mysql_conf() { find -L '/etc' -maxdepth 4 -type f -name 'my.cnf' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_mysql_conf() { find -L '/etc' -maxdepth 4 -type f -name 'my.cnf' 2>/dev/null | head -n1; }
__find_pgsql_conf() { find -L '/var/lib' '/etc' -maxdepth 8 -type f -name 'postgresql.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; } __find_pgsql_conf() { find -L '/var/lib' '/etc' -maxdepth 8 -type f -name 'postgresql.conf' 2>/dev/null | head -n1; }
__find_couchdb_conf() { return; } __find_couchdb_conf() { return; }
__find_mongodb_conf() { return; } __find_mongodb_conf() { return; }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -526,7 +451,8 @@ __display_user_info() {
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__init_config_etc() { __init_config_etc() {
local copy="no" local copy="no"
local name="$(find "/etc/$SERVICE_NAME" -maxdepth 0 2>/dev/null | head -n1)" local name=""
[ -e "/etc/$SERVICE_NAME" ] && name="/etc/$SERVICE_NAME"
local etc_dir="${ETC_DIR:-/etc/$name}" local etc_dir="${ETC_DIR:-/etc/$name}"
local conf_dir="${CONF_DIR:-/config/$name}" local conf_dir="${CONF_DIR:-/config/$name}"
__is_dir_empty "$conf_dir" && copy=yes __is_dir_empty "$conf_dir" && copy=yes
@@ -694,8 +620,8 @@ __find_replace() {
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
# /config > /etc # /config > /etc
__copy_templates() { __copy_templates() {
local from="$1" to="$2" local from="$1" to="$2" is_link=""
is_link="$(ls -la "$dest" 2>/dev/null | awk '{print $NF}')" [ -L "$to" ] && is_link="$(readlink "$to")"
[ "$from" != "$is_link" ] || return 0 [ "$from" != "$is_link" ] || return 0
if [ -e "$from" ] && __is_dir_empty "$to"; then if [ -e "$from" ] && __is_dir_empty "$to"; then
__file_copy "$from" "$to" __file_copy "$from" "$to"
@@ -705,16 +631,18 @@ __copy_templates() {
# /config/file > /etc/file # /config/file > /etc/file
__symlink() { __symlink() {
local from="$1" to="$2" local from="$1" to="$2"
if [ -e "$to" ]; then [ -e "$to" ] || return 0
[ -e "$from" ] && __rm "$from" [ "$from" = "$to" ] && return 0
ln -sf "$to" "$from" && echo "Created symlink to $from > $to" __rm "$from"
fi [ -d "${from%/*}" ] || mkdir -p "${from%/*}" 2>/dev/null
ln -sf "$to" "$from" && echo "Created symlink to $from > $to"
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__file_copy() { __file_copy() {
local from="$1" local from="$1"
local dest="$2" local dest="$2"
is_link="$(ls -la "$dest" 2>/dev/null | awk '{print $NF}')" local is_link=""
[ -L "$dest" ] && is_link="$(readlink "$dest")"
if [ "$from" != "$is_link" ]; then if [ "$from" != "$is_link" ]; then
if [ -n "$from" ] && [ -e "$from" ] && [ -n "$dest" ]; then if [ -n "$from" ] && [ -e "$from" ] && [ -n "$dest" ]; then
if [ -d "$from" ]; then if [ -d "$from" ]; then
@@ -811,12 +739,12 @@ __fix_permissions() {
fi fi
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__get_gid() { grep "^$1:" /etc/group 2>/dev/null | awk -F ':' '{print $3}' || return 1; } __get_gid() { awk -F: -v n="$1" '$1==n {print $3; found=1; exit} END {exit !found}' /etc/group 2>/dev/null; }
__get_uid() { grep "^$1:" /etc/passwd 2>/dev/null | awk -F ':' '{print $3}' || return 1; } __get_uid() { awk -F: -v n="$1" '$1==n {print $3; found=1; exit} END {exit !found}' /etc/passwd 2>/dev/null; }
__check_for_uid() { awk -F ':' '{print $3}' /etc/passwd 2>/dev/null | sort -u | grep -q "^$1$" || return 1; } __check_for_uid() { awk -F: -v n="$1" '$3==n {found=1; exit} END {exit !found}' /etc/passwd 2>/dev/null; }
__check_for_guid() { awk -F ':' '{print $3}' /etc/group 2>/dev/null | sort -u | grep -q "^$1$" || return 1; } __check_for_guid() { awk -F: -v n="$1" '$3==n {found=1; exit} END {exit !found}' /etc/group 2>/dev/null; }
__check_for_user() { awk -F ':' '{print $1}' /etc/passwd 2>/dev/null | sort -u | grep -q "^$1$" || return 1; } __check_for_user() { awk -F: -v n="$1" '$1==n {found=1; exit} END {exit !found}' /etc/passwd 2>/dev/null; }
__check_for_group() { awk -F ':' '{print $1}' /etc/group 2>/dev/null | sort -u | grep -q "^$1$" || return 1; } __check_for_group() { awk -F: -v n="$1" '$1==n {found=1; exit} END {exit !found}' /etc/group 2>/dev/null; }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
# check if process is already running # check if process is already running
__proc_check() { __proc_check() {
@@ -837,7 +765,7 @@ __proc_check() {
check_result=0 check_result=0
elif [ -f "$SERVICE_PID_FILE" ]; then elif [ -f "$SERVICE_PID_FILE" ]; then
local pid_from_file local pid_from_file
pid_from_file="$(cat "$SERVICE_PID_FILE" 2>/dev/null || echo "")" pid_from_file=$(<"$SERVICE_PID_FILE") 2>/dev/null
if [ -n "$pid_from_file" ] && kill -0 "$pid_from_file" 2>/dev/null; then if [ -n "$pid_from_file" ] && kill -0 "$pid_from_file" 2>/dev/null; then
check_result=0 check_result=0
fi fi
@@ -1021,9 +949,7 @@ __create_env_file() {
dir="$(dirname "$create_env")" dir="$(dirname "$create_env")"
[ -d "$dir" ] || mkdir -p "$dir" [ -d "$dir" ] || mkdir -p "$dir"
if [ -n "$create_env" ] && [ ! -f "$create_env" ]; then if [ -n "$create_env" ] && [ ! -f "$create_env" ]; then
cat <<EOF | tee -p "$create_env" >/dev/null cp -f "$sample_file" "$create_env"
$(<"$sample_file")
EOF
fi fi
[ -f "$create_env" ] || envStatus=$((1 + envStatus)) [ -f "$create_env" ] || envStatus=$((1 + envStatus))
done done
@@ -1032,17 +958,17 @@ EOF
} }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
__exec_command() { __exec_command() {
local bin=""
local arg=("$@") local arg=("$@")
local exitCode="0" local exitCode=0
local cmdExec="${arg:-}" local cmdExec="${arg:-}"
local pre_exec="--login -c" local pre_exec="--login -c"
local shell="$(type -P bash 2>/dev/null || type -P dash 2>/dev/null || type -P ash 2>/dev/null || type -P sh 2>/dev/null)" local shell bin prog
bin="$(echo "${arg[*]}" | tr ' ' '\n' | grep -v '^$' | head -n1 | sed 's| ||g' || echo 'bash')" shell=$(type -P bash || type -P dash || type -P ash || type -P sh) 2>/dev/null
bin="${arg[0]:-bash}"
prog="$(type -P "$bin" 2>/dev/null || echo "$bin")" prog="$(type -P "$bin" 2>/dev/null || echo "$bin")"
if type -t $bin >/dev/null 2>&1; then if type -t "$bin" &>/dev/null; then
echo "${exec_message:-Executing command: $cmdExec}" echo "${exec_message:-Executing command: $cmdExec}"
eval $shell $pre_exec "$cmdExec" || exitCode=1 eval "$shell" $pre_exec "$cmdExec"
exitCode=$? exitCode=$?
elif [ -f "$prog" ]; then elif [ -f "$prog" ]; then
echo "$prog is not executable" echo "$prog is not executable"
@@ -1071,7 +997,9 @@ __start_init_scripts() {
local critical_failures="0" local critical_failures="0"
local pidFile="/run/.start_init_scripts.pid" local pidFile="/run/.start_init_scripts.pid"
local init_dir="${1:-/usr/local/etc/docker/init.d}" local init_dir="${1:-/usr/local/etc/docker/init.d}"
local init_count="$(ls -A "$init_dir"/* 2>/dev/null | grep -v '\.sample' | wc -l)" local init_files=("$init_dir"/*.sh)
local init_count=0
[ -e "${init_files[0]}" ] && init_count=${#init_files[@]}
local exit_on_failure="${EXIT_ON_SERVICE_FAILURE:-true}" local exit_on_failure="${EXIT_ON_SERVICE_FAILURE:-true}"
# Clean stale PID files from previous runs # Clean stale PID files from previous runs
@@ -1087,7 +1015,10 @@ __start_init_scripts() {
while :; do echo "Running: $(date)" >"/data/logs/init/keep_alive" && sleep 3600; done & while :; do echo "Running: $(date)" >"/data/logs/init/keep_alive" && sleep 3600; done &
else else
if [ -d "$init_dir" ]; then if [ -d "$init_dir" ]; then
[ -f "$init_dir/service.sample" ] && __rm "$init_dir"/*.sample local sample
for sample in "$init_dir"/*.sample; do
[ -e "$sample" ] && __rm "$sample"
done
chmod -Rf 755 "$init_dir"/*.sh chmod -Rf 755 "$init_dir"/*.sh
echo "🚀 Starting container services initialization" echo "🚀 Starting container services initialization"
@@ -1100,7 +1031,7 @@ __start_init_scripts() {
if [ -x "$init" ]; then if [ -x "$init" ]; then
touch "$pidFile" touch "$pidFile"
name="${init##*/}" name="${init##*/}"
service="$(printf '%s' "$name" | sed 's/^[^-]*-//;s|.sh$||g')" service="${name#*-}"; service="${service%.sh}"
__service_banner "🔧" "Executing service script:" "${init##*/}" __service_banner "🔧" "Executing service script:" "${init##*/}"
# Execute the init script and capture the exit code # Execute the init script and capture the exit code
if source "$init"; then if source "$init"; then
@@ -1129,7 +1060,7 @@ __start_init_scripts() {
retPID="" retPID=""
local found_process="" local found_process=""
# Try multiple name variants to find the process # Try multiple name variants to find the process
for name_variant in "$service" "${service}84" "${service}d" "$(echo "$service" | sed 's/-//g')" "$(echo "$service" | tr -d '-')"; do for name_variant in "$service" "${service}84" "${service}d" "${service//-/}"; do
if [ -z "$retPID" ]; then if [ -z "$retPID" ]; then
retPID=$(__get_pid "$name_variant" 2>/dev/null || echo "") retPID=$(__get_pid "$name_variant" 2>/dev/null || echo "")
if [ -n "$retPID" ] && [ "$retPID" != "0" ]; then if [ -n "$retPID" ] && [ "$retPID" != "0" ]; then
@@ -1144,7 +1075,7 @@ __start_init_scripts() {
__service_banner "✅" "Service $service started successfully -" "PID: ${retPID} ($found_process)" __service_banner "✅" "Service $service started successfully -" "PID: ${retPID} ($found_process)"
elif [ -f "$expected_pid_file" ]; then elif [ -f "$expected_pid_file" ]; then
# No running process but PID file exists - verify PID is valid # No running process but PID file exists - verify PID is valid
file_pid="$(cat "$expected_pid_file" 2>/dev/null || echo "")" file_pid=$(<"$expected_pid_file") 2>/dev/null
if [ -n "$file_pid" ] && kill -0 "$file_pid" 2>/dev/null; then if [ -n "$file_pid" ] && kill -0 "$file_pid" 2>/dev/null; then
initStatus="0" initStatus="0"
__service_banner "✅" "Service $service started successfully -" "PID: $file_pid (from file)" __service_banner "✅" "Service $service started successfully -" "PID: $file_pid (from file)"
@@ -1203,14 +1134,14 @@ __setup_mta() {
local local_hostname="${FULL_DOMAIN_NAME:-}" local local_hostname="${FULL_DOMAIN_NAME:-}"
local account_user="${SERVER_ADMIN//@*/}" local account_user="${SERVER_ADMIN//@*/}"
local account_domain="${EMAIL_DOMAIN//*@/}" local account_domain="${EMAIL_DOMAIN//*@/}"
echo "$EMAIL_RELAY" | grep '[0-9][0-9]' || relay_port="465" [[ $EMAIL_RELAY == *[0-9][0-9]* ]] || relay_port="465"
################# sSMTP relay setup ################# sSMTP relay setup
if [ -n "$(type -P 'ssmtp')" ]; then if command -v ssmtp &>/dev/null; then
[ -d "/config/ssmtp" ] || mkdir -p "/config/ssmtp" [ -d "/config/ssmtp" ] || mkdir -p "/config/ssmtp"
[ -f "/etc/ssmtp/ssmtp.conf" ] && __rm "/etc/ssmtp/ssmtp.conf" [ -f "/etc/ssmtp/ssmtp.conf" ] && __rm "/etc/ssmtp/ssmtp.conf"
symlink_files="$(__find_file_relative "/config/ssmtp")" symlink_files="$(__find_file_relative "/config/ssmtp")"
if [ ! -f "/config/ssmtp/ssmtp.conf" ]; then if [ ! -f "/config/ssmtp/ssmtp.conf" ]; then
cat <<EOF | tee -p "/config/ssmtp/ssmtp.conf" >/dev/null cat >"/config/ssmtp/ssmtp.conf" <<EOF
# ssmtp configuration. # ssmtp configuration.
root=${account_user:-root}@${account_domain:-$HOSTNAME} root=${account_user:-root}@${account_domain:-$HOSTNAME}
mailhub=${relay_server:-172.17.0.1}:$relay_port mailhub=${relay_server:-172.17.0.1}:$relay_port
@@ -1244,13 +1175,13 @@ EOF
fi fi
################# postfix relay setup ################# postfix relay setup
elif [ -n "$(type -P 'postfix')" ]; then elif command -v postfix &>/dev/null; then
[ -d "/etc/postfix" ] || mkdir -p "/etc/postfix" [ -d "/etc/postfix" ] || mkdir -p "/etc/postfix"
[ -d "/config/postfix" ] || mkdir -p "/config/postfix" [ -d "/config/postfix" ] || mkdir -p "/config/postfix"
[ -f "/etc/postfix/main.cf" ] && __rm "/etc/postfix/main.cf" [ -f "/etc/postfix/main.cf" ] && __rm "/etc/postfix/main.cf"
symlink_files="$(__find_file_relative "/config/postfix")" symlink_files="$(__find_file_relative "/config/postfix")"
if [ ! -f "/config/postfix/main.cf" ]; then if [ ! -f "/config/postfix/main.cf" ]; then
cat <<EOF | tee -p "/config/postfix/main.cf" >/dev/null cat >"/config/postfix/main.cf" <<EOF
# postfix configuration. # postfix configuration.
smtpd_banner = \$myhostname ESMTP email server smtpd_banner = \$myhostname ESMTP email server
compatibility_level = 2 compatibility_level = 2
@@ -1401,8 +1332,8 @@ __initialize_system_etc() {
local file=() local file=()
local directories="" local directories=""
if [ -n "$conf_dir" ] && [ -e "$conf_dir" ]; then if [ -n "$conf_dir" ] && [ -e "$conf_dir" ]; then
files="$(find "$conf_dir"/* -not -path '*/env/*' -type f 2>/dev/null | sed 's|'/config/'||g' | sort -u | grep -v '^$' | grep '.' || false)" files=$(find "$conf_dir"/* -not -path '*/env/*' -type f 2>/dev/null | sort -u | sed 's|/config/||')
directories="$(find "$conf_dir"/* -not -path '*/env/*' -type d 2>/dev/null | sed 's|'/config/'||g' | sort -u | grep -v '^$' | grep '.' || false)" directories=$(find "$conf_dir"/* -not -path '*/env/*' -type d 2>/dev/null | sort -u | sed 's|/config/||')
echo "Copying config files to system: $conf_dir > /etc/${conf_dir//\/config\//}" echo "Copying config files to system: $conf_dir > /etc/${conf_dir//\/config\//}"
if [ -n "$directories" ]; then if [ -n "$directories" ]; then
for d in $directories; do for d in $directories; do
@@ -1559,7 +1490,7 @@ __is_htdocs_mounted() {
unset IMPORT_FROM_GIT unset IMPORT_FROM_GIT
fi fi
fi fi
if [ -n "$IMPORT_FROM_GIT" ] && [ "$(command -v "git" 2>/dev/null)" ]; then if [ -n "$IMPORT_FROM_GIT" ] && command -v git &>/dev/null; then
if __is_dir_empty "$WWW_ROOT_DIR"; then if __is_dir_empty "$WWW_ROOT_DIR"; then
echo "Importing project from $IMPORT_FROM_GIT to $WWW_ROOT_DIR" echo "Importing project from $IMPORT_FROM_GIT to $WWW_ROOT_DIR"
git clone -q "$IMPORT_FROM_GIT" "$WWW_ROOT_DIR" git clone -q "$IMPORT_FROM_GIT" "$WWW_ROOT_DIR"
@@ -1636,16 +1567,16 @@ __switch_to_user() {
if [ "$switch_user" = "root" ]; then if [ "$switch_user" = "root" ]; then
su_exec="" su_exec=""
su_cmd() { eval "$@" || return 1; } su_cmd() { eval "$@" || return 1; }
elif [ "$(builtin type -P gosu)" ]; then elif command -v gosu &>/dev/null; then
su_exec="gosu $switch_user" su_exec="gosu $switch_user"
su_cmd() { $su_exec "$@" || return 1; } su_cmd() { $su_exec "$@" || return 1; }
elif [ "$(builtin type -P runuser)" ]; then elif command -v runuser &>/dev/null; then
su_exec="runuser -u $switch_user" su_exec="runuser -u $switch_user"
su_cmd() { $su_exec "$@" || return 1; } su_cmd() { $su_exec "$@" || return 1; }
elif [ "$(builtin type -P sudo)" ]; then elif command -v sudo &>/dev/null; then
su_exec="sudo -u $switch_user" su_exec="sudo -u $switch_user"
su_cmd() { $su_exec "$@" || return 1; } su_cmd() { $su_exec "$@" || return 1; }
elif [ "$(builtin type -P su)" ]; then elif command -v su &>/dev/null; then
su_exec="su -s /bin/sh - $switch_user" su_exec="su -s /bin/sh - $switch_user"
su_cmd() { $su_exec -c "$@" || return 1; } su_cmd() { $su_exec -c "$@" || return 1; }
else else
+13 -11
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck shell=bash # shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202602061352-git ##@Version : 202605131434-git
# @@Author : Jason Hempstead # @@Author : Jason Hempstead
# @@Contact : jason@casjaysdev.pro # @@Contact : jason@casjaysdev.pro
# @@License : WTFPL # @@License : WTFPL
@@ -98,9 +98,8 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
fi fi
# Clean up any stale PID file for this service on startup # Clean up any stale PID file for this service on startup
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null) old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then 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" rm -f "/run/init.d/$SERVICE_NAME.pid"
fi fi
fi fi
@@ -140,7 +139,7 @@ LOG_DIR="/data/logs/tor"
WORK_DIR="" WORK_DIR=""
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
# port which service is listening on # port which service is listening on
SERVICE_PORT="9053" SERVICE_PORT=""
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
# User to use to launch service - IE: postgres # User to use to launch service - IE: postgres
# normally root # normally root
@@ -391,7 +390,7 @@ __post_execute() {
__banner "$postMessageEnd: Status $retVal" __banner "$postMessageEnd: Status $retVal"
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
pid=$! pid=$!
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
retVal=0 retVal=0
else else
retVal=10 retVal=10
@@ -535,11 +534,9 @@ __run_start_script() {
fi fi
if [ -n "$SERVICE_PORT" ]; then if [ -n "$SERVICE_PORT" ]; then
__log_info "$name will be running on port $SERVICE_PORT" __log_info "$name will be running on port $SERVICE_PORT"
else
SERVICE_PORT="9053"
fi fi
fi fi
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
export cmd_exec="$pre $cmd $args" export cmd_exec="$pre $cmd $args"
message="Starting service: $name $args through $pre" message="Starting service: $name $args through $pre"
else else
@@ -571,9 +568,14 @@ execute_command="$execute_command"
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" & \$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
execPid=\$! execPid=\$!
sleep 1 sleep 1
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)" if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10 echo "\$execPid" >"\$SERVICE_PID_FILE"
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2 retVal=0
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
else
retVal=10
echo "Failed to start $execute_command" >&2
fi
exit \$retVal exit \$retVal
EOF EOF
+22 -14
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck shell=bash # shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202602061352-git ##@Version : 202605131434-git
# @@Author : Jason Hempstead # @@Author : Jason Hempstead
# @@Contact : jason@casjaysdev.pro # @@Contact : jason@casjaysdev.pro
# @@License : WTFPL # @@License : WTFPL
@@ -98,9 +98,9 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
fi fi
# Clean up any stale PID file for this service on startup # Clean up any stale PID file for this service on startup
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null) old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
echo "🧹 Removing stale PID file for $SERVICE_NAME" echo "Removing stale PID file for $SERVICE_NAME"
rm -f "/run/init.d/$SERVICE_NAME.pid" rm -f "/run/init.d/$SERVICE_NAME.pid"
fi fi
fi fi
@@ -497,7 +497,7 @@ EOF
file_name="$(basename "$dns_file")" file_name="$(basename "$dns_file")"
domain_name="$(basename "${dns_file%.*}")" domain_name="$(basename "${dns_file%.*}")"
if [ -n "$domain_name" ]; then if [ -n "$domain_name" ]; then
cat "$dns_file" | sed 's|REPLACE_VAR_DIR|'$VAR_DIR'|g' >>"$DNS_ZONE_FILE" sed 's|REPLACE_VAR_DIR|'"$VAR_DIR"'|g' "$dns_file" >>"$DNS_ZONE_FILE"
grep -qs "$domain_name" "$DNS_ZONE_FILE" && echo "Secondary $domain_name to $DNS_ZONE_FILE" grep -qs "$domain_name" "$DNS_ZONE_FILE" && echo "Secondary $domain_name to $DNS_ZONE_FILE"
else else
echo "Failed to get domain name from $dns_file" | tee -a "$LOG_DIR/init.txt" >&2 echo "Failed to get domain name from $dns_file" | tee -a "$LOG_DIR/init.txt" >&2
@@ -546,7 +546,7 @@ __post_execute() {
__banner "$postMessageEnd: Status $retVal" __banner "$postMessageEnd: Status $retVal"
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
pid=$! pid=$!
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then if kill -0 "$pid" 2>/dev/null; then
retVal=0 retVal=0
else else
retVal=10 retVal=10
@@ -690,11 +690,9 @@ __run_start_script() {
fi fi
if [ -n "$SERVICE_PORT" ]; then if [ -n "$SERVICE_PORT" ]; then
__log_info "$name will be running on port $SERVICE_PORT" __log_info "$name will be running on port $SERVICE_PORT"
else
SERVICE_PORT="53"
fi fi
fi fi
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
export cmd_exec="$pre $cmd $args" export cmd_exec="$pre $cmd $args"
message="Starting service: $name $args through $pre" message="Starting service: $name $args through $pre"
else else
@@ -726,9 +724,14 @@ execute_command="$execute_command"
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" & \$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
execPid=\$! execPid=\$!
sleep 1 sleep 1
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)" if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10 echo "\$execPid" >"\$SERVICE_PID_FILE"
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2 retVal=0
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
else
retVal=10
echo "Failed to start $execute_command" >&2
fi
exit \$retVal exit \$retVal
EOF EOF
@@ -752,9 +755,14 @@ execute_command="$execute_command"
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" & \$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
execPid=\$! execPid=\$!
sleep 1 sleep 1
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)" if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10 echo "\$execPid" >"\$SERVICE_PID_FILE"
[ "\$retVal" = 0 ] || echo "Failed to start $execute_command" >&2 retVal=0
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
else
retVal=10
echo "Failed to start $execute_command" >&2
fi
exit \$retVal exit \$retVal
EOF EOF
+21 -13
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck shell=bash # shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202602061352-git ##@Version : 202605131434-git
# @@Author : Jason Hempstead # @@Author : Jason Hempstead
# @@Contact : jason@casjaysdev.pro # @@Contact : jason@casjaysdev.pro
# @@License : WTFPL # @@License : WTFPL
@@ -98,9 +98,9 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
fi fi
# Clean up any stale PID file for this service on startup # Clean up any stale PID file for this service on startup
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null) old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
echo "🧹 Removing stale PID file for $SERVICE_NAME" echo "Removing stale PID file for $SERVICE_NAME"
rm -f "/run/init.d/$SERVICE_NAME.pid" rm -f "/run/init.d/$SERVICE_NAME.pid"
fi fi
fi fi
@@ -389,7 +389,7 @@ __post_execute() {
__banner "$postMessageEnd: Status $retVal" __banner "$postMessageEnd: Status $retVal"
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
pid=$! pid=$!
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then if kill -0 "$pid" 2>/dev/null; then
retVal=0 retVal=0
else else
retVal=10 retVal=10
@@ -533,11 +533,9 @@ __run_start_script() {
fi fi
if [ -n "$SERVICE_PORT" ]; then if [ -n "$SERVICE_PORT" ]; then
__log_info "$name will be running on port $SERVICE_PORT" __log_info "$name will be running on port $SERVICE_PORT"
else
SERVICE_PORT="80"
fi fi
fi fi
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
export cmd_exec="$pre $cmd $args" export cmd_exec="$pre $cmd $args"
message="Starting service: $name $args through $pre" message="Starting service: $name $args through $pre"
else else
@@ -569,9 +567,14 @@ execute_command="$execute_command"
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" & \$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
execPid=\$! execPid=\$!
sleep 1 sleep 1
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)" if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10 echo "\$execPid" >"\$SERVICE_PID_FILE"
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2 retVal=0
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
else
retVal=10
echo "Failed to start $execute_command" >&2
fi
exit \$retVal exit \$retVal
EOF EOF
@@ -595,9 +598,14 @@ execute_command="$execute_command"
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" & \$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
execPid=\$! execPid=\$!
sleep 1 sleep 1
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)" if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10 echo "\$execPid" >"\$SERVICE_PID_FILE"
[ "\$retVal" = 0 ] || echo "Failed to start $execute_command" >&2 retVal=0
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
else
retVal=10
echo "Failed to start $execute_command" >&2
fi
exit \$retVal exit \$retVal
EOF EOF
@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck shell=bash # shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202602061352-git ##@Version : 202605131434-git
# @@Author : Jason Hempstead # @@Author : Jason Hempstead
# @@Contact : jason@casjaysdev.pro # @@Contact : jason@casjaysdev.pro
# @@License : WTFPL # @@License : WTFPL
@@ -98,9 +98,9 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
fi fi
# Clean up any stale PID file for this service on startup # Clean up any stale PID file for this service on startup
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null) old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
echo "🧹 Removing stale PID file for $SERVICE_NAME" echo "Removing stale PID file for $SERVICE_NAME"
rm -f "/run/init.d/$SERVICE_NAME.pid" rm -f "/run/init.d/$SERVICE_NAME.pid"
fi fi
fi fi
@@ -389,7 +389,7 @@ __post_execute() {
__banner "$postMessageEnd: Status $retVal" __banner "$postMessageEnd: Status $retVal"
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" & ) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
pid=$! pid=$!
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then if kill -0 "$pid" 2>/dev/null; then
retVal=0 retVal=0
else else
retVal=10 retVal=10
@@ -533,11 +533,9 @@ __run_start_script() {
fi fi
if [ -n "$SERVICE_PORT" ]; then if [ -n "$SERVICE_PORT" ]; then
__log_info "$name will be running on port $SERVICE_PORT" __log_info "$name will be running on port $SERVICE_PORT"
else
SERVICE_PORT="9000"
fi fi
fi fi
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
export cmd_exec="$pre $cmd $args" export cmd_exec="$pre $cmd $args"
message="Starting service: $name $args through $pre" message="Starting service: $name $args through $pre"
else else
@@ -569,9 +567,14 @@ execute_command="$execute_command"
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" & \$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
execPid=\$! execPid=\$!
sleep 1 sleep 1
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)" if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10 echo "\$execPid" >"\$SERVICE_PID_FILE"
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2 retVal=0
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
else
retVal=10
echo "Failed to start $execute_command" >&2
fi
exit \$retVal exit \$retVal
EOF EOF
@@ -595,9 +598,14 @@ execute_command="$execute_command"
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" & \$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
execPid=\$! execPid=\$!
sleep 1 sleep 1
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)" if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10 echo "\$execPid" >"\$SERVICE_PID_FILE"
[ "\$retVal" = 0 ] || echo "Failed to start $execute_command" >&2 retVal=0
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
else
retVal=10
echo "Failed to start $execute_command" >&2
fi
exit \$retVal exit \$retVal
EOF EOF