From 139cd4f7280b87ce42eabe08647b61d8b25ae16e Mon Sep 17 00:00:00 2001 From: casjay Date: Wed, 14 Aug 2024 16:43:59 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20Committing=20everything?= =?UTF-8?q?=20that=20changed=20=F0=9F=97=83=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rootfs/tmp/etc/gitea/app.ini rootfs/tmp/etc/nginx/mime.types rootfs/tmp/etc/nginx/nginx.conf rootfs/usr/local/etc/docker/init.d/09-nginx.sh rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh --- rootfs/tmp/etc/gitea/app.ini | 2 +- rootfs/tmp/etc/nginx/mime.types | 99 --- rootfs/tmp/etc/nginx/nginx.conf | 66 -- .../usr/local/etc/docker/init.d/09-nginx.sh | 567 ------------------ .../local/etc/docker/init.d/zz-act_runner.sh | 5 +- 5 files changed, 5 insertions(+), 734 deletions(-) delete mode 100644 rootfs/tmp/etc/nginx/mime.types delete mode 100644 rootfs/tmp/etc/nginx/nginx.conf delete mode 100755 rootfs/usr/local/etc/docker/init.d/09-nginx.sh diff --git a/rootfs/tmp/etc/gitea/app.ini b/rootfs/tmp/etc/gitea/app.ini index 5715d1f..4a343e1 100644 --- a/rootfs/tmp/etc/gitea/app.ini +++ b/rootfs/tmp/etc/gitea/app.ini @@ -5,7 +5,7 @@ RUN_MODE = prod ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [server] -HTTP_PORT = 8000 +HTTP_PORT = 80 ROOT_URL = REPLACE_SERVER_PROTO://REPLACE_SERVER_NAME DOMAIN = REPLACE_SERVER_NAME APP_DATA_PATH = REPLACE_DATA_DIR diff --git a/rootfs/tmp/etc/nginx/mime.types b/rootfs/tmp/etc/nginx/mime.types deleted file mode 100644 index 1c00d70..0000000 --- a/rootfs/tmp/etc/nginx/mime.types +++ /dev/null @@ -1,99 +0,0 @@ - -types { - text/html html htm shtml; - text/css css; - text/xml xml; - image/gif gif; - image/jpeg jpeg jpg; - application/javascript js; - application/atom+xml atom; - application/rss+xml rss; - - text/mathml mml; - text/plain txt; - text/vnd.sun.j2me.app-descriptor jad; - text/vnd.wap.wml wml; - text/x-component htc; - - image/avif avif; - image/png png; - image/svg+xml svg svgz; - image/tiff tif tiff; - image/vnd.wap.wbmp wbmp; - image/webp webp; - image/x-icon ico; - image/x-jng jng; - image/x-ms-bmp bmp; - - font/woff woff; - font/woff2 woff2; - - application/java-archive jar war ear; - application/json json; - application/mac-binhex40 hqx; - application/msword doc; - application/pdf pdf; - application/postscript ps eps ai; - application/rtf rtf; - application/vnd.apple.mpegurl m3u8; - application/vnd.google-earth.kml+xml kml; - application/vnd.google-earth.kmz kmz; - application/vnd.ms-excel xls; - application/vnd.ms-fontobject eot; - application/vnd.ms-powerpoint ppt; - application/vnd.oasis.opendocument.graphics odg; - application/vnd.oasis.opendocument.presentation odp; - application/vnd.oasis.opendocument.spreadsheet ods; - application/vnd.oasis.opendocument.text odt; - application/vnd.openxmlformats-officedocument.presentationml.presentation - pptx; - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - xlsx; - application/vnd.openxmlformats-officedocument.wordprocessingml.document - docx; - application/vnd.wap.wmlc wmlc; - application/wasm wasm; - application/x-7z-compressed 7z; - application/x-cocoa cco; - application/x-java-archive-diff jardiff; - application/x-java-jnlp-file jnlp; - application/x-makeself run; - application/x-perl pl pm; - application/x-pilot prc pdb; - application/x-rar-compressed rar; - application/x-redhat-package-manager rpm; - application/x-sea sea; - application/x-shockwave-flash swf; - application/x-stuffit sit; - application/x-tcl tcl tk; - application/x-x509-ca-cert der pem crt; - application/x-xpinstall xpi; - application/xhtml+xml xhtml; - application/xspf+xml xspf; - application/zip zip; - - application/octet-stream bin exe dll; - application/octet-stream deb; - application/octet-stream dmg; - application/octet-stream iso img; - application/octet-stream msi msp msm; - - audio/midi mid midi kar; - audio/mpeg mp3; - audio/ogg ogg; - audio/x-m4a m4a; - audio/x-realaudio ra; - - video/3gpp 3gpp 3gp; - video/mp2t ts; - video/mp4 mp4; - video/mpeg mpeg mpg; - video/quicktime mov; - video/webm webm; - video/x-flv flv; - video/x-m4v m4v; - video/x-mng mng; - video/x-ms-asf asx asf; - video/x-ms-wmv wmv; - video/x-msvideo avi; -} diff --git a/rootfs/tmp/etc/nginx/nginx.conf b/rootfs/tmp/etc/nginx/nginx.conf deleted file mode 100644 index 2dbc74e..0000000 --- a/rootfs/tmp/etc/nginx/nginx.conf +++ /dev/null @@ -1,66 +0,0 @@ -# nginx configuration for proxying - -user REPLACE_WWW_USER; -worker_processes auto; -daemon off; -error_log REPLACE_LOG_DIR/nginx.log warn; -pid REPLACE_RUN_DIR/nginx.pid; -events { worker_connections 1024; } - -http { - include REPLACE_ETC_DIR/mime.types; - default_type "text/html"; - sendfile on; - keepalive_timeout 65; - gzip on; - map $http_upgrade $connection_upgrade { default upgrade; '' close; } - disable_symlinks off; - - server { - listen 0.0.0.0:80 default_server; - server_name REPLACE_SERVER_NAME; - client_max_body_size 0; - proxy_intercept_errors off; - add_header X-Frame-Options "SAMEORIGIN" always; - add_header X-XSS-Protection "1; mode=block" always; - add_header X-Content-Type-Options "nosniff" always; - add_header Referrer-Policy "no-referrer-when-downgrade" always; - add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' *; frame-src 'self' *; object-src 'self'" always; - index index.php index.cgi index.pl index.aspx index.txt index.json index.html index.unknown.php index.default.php; - root /var/lib/nginx/html; - - location /health { - default_type text/plain; - return 200 'ok'; - } - location /health/text { - default_type text/plain; - return 200 'ok'; - } - location /health/json { - default_type application/json; - return 200 '{"status":"ok","message":"running"}'; - } - - location / { - proxy_ssl_verify off; - send_timeout 3600; - client_max_body_size 0; - proxy_http_version 1.1; - proxy_connect_timeout 3600; - proxy_send_timeout 3600; - proxy_read_timeout 3600; - proxy_intercept_errors off; - proxy_request_buffering off; - proxy_buffering off; - proxy_set_header X-NginX-Proxy true; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Host $host; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - proxy_pass http://127.0.0.1:8000; - } - } -} diff --git a/rootfs/usr/local/etc/docker/init.d/09-nginx.sh b/rootfs/usr/local/etc/docker/init.d/09-nginx.sh deleted file mode 100755 index 18daeef..0000000 --- a/rootfs/usr/local/etc/docker/init.d/09-nginx.sh +++ /dev/null @@ -1,567 +0,0 @@ -#!/usr/bin/env bash -# shellcheck shell=bash -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -##@Version : 202408091658-git -# @@Author : Jason Hempstead -# @@Contact : jason@casjaysdev.pro -# @@License : WTFPL -# @@ReadME : 09-nginx.sh --help -# @@Copyright : Copyright: (c) 2024 Jason Hempstead, Casjays Developments -# @@Created : Friday, Aug 09, 2024 16:58 EDT -# @@File : 09-nginx.sh -# @@Description : -# @@Changelog : New script -# @@TODO : Better documentation -# @@Other : -# @@Resource : -# @@Terminal App : no -# @@sudo/root : no -# @@Template : other/start-service -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# shellcheck disable=SC2016 -# shellcheck disable=SC2031 -# shellcheck disable=SC2120 -# shellcheck disable=SC2155 -# shellcheck disable=SC2199 -# shellcheck disable=SC2317 -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# run trap command on exit -trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM EXIT -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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 -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -export PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SCRIPT_FILE="$0" -SERVICE_NAME="nginx" -SCRIPT_NAME="$(basename "$SCRIPT_FILE" 2>/dev/null)" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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" - exit 1 -fi -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# import the functions file -if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then - . "/usr/local/etc/docker/functions/entrypoint.sh" -fi -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# import variables -for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do - [ -f "$set_env" ] && . "$set_env" -done -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Custom functions - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Script to execute -START_SCRIPT="/usr/local/etc/docker/exec/$SERVICE_NAME" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Reset environment before executing service -RESET_ENV="no" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Set the database root dir -DATABASE_BASE_DIR="${DATABASE_BASE_DIR:-/data/db}" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# set the database directory -DATABASE_DIR="${DATABASE_DIR_NGINX:-$DATABASE_BASE_DIR/sqlite}" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Set webroot -WWW_ROOT_DIR="/usr/share/httpd/default" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Default predefined variables -DATA_DIR="/data/nginx" # set data directory -CONF_DIR="/config/nginx" # set config directory -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# set the containers etc directory -ETC_DIR="/etc/nginx" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# set the var dir -VAR_DIR="" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -TMP_DIR="/tmp/nginx" # set the temp dir -RUN_DIR="/run/nginx" # set scripts pid dir -LOG_DIR="/data/logs/nginx" # set log directory -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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 -SERVICE_USER="nginx" # execute command as another user -SERVICE_GROUP="nginx" # Set the service group -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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 -EXEC_CMD_BIN='nginx' # command to execute -EXEC_CMD_ARGS='-c $CONF_DIR/nginx.conf' # command arguments -EXEC_PRE_SCRIPT='' # execute script before -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Is this service a web server -IS_WEB_SERVER="yes" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Is this service a database server -IS_DATABASE_SERVICE="no" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Does this service use a database server -USES_DATABASE_SERVICE="no" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Show message before execute -PRE_EXEC_MESSAGE="" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Update path var -PATH="$PATH:." -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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] -root_user_name="${NGINX_ROOT_USER_NAME:-}" # root user name -root_user_pass="${NGINX_ROOT_PASS_WORD:-}" # root user password -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Normal user info [password/random] -user_name="${NGINX_USER_NAME:-}" # normal user name -user_pass="${NGINX_USER_PASS_WORD:-}" # normal user password -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Load variables from config -[ -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 -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Additional predefined variables - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Additional variables - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Specifiy custom directories to be created -ADD_APPLICATION_FILES="" -ADD_APPLICATION_DIRS="" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -APPLICATION_FILES="$LOG_DIR/$SERVICE_NAME.log" -APPLICATION_DIRS="$RUN_DIR $ETC_DIR $CONF_DIR $LOG_DIR $TMP_DIR" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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 prerun functions - IE setup WWW_ROOT_DIR -__execute_prerun() { - # Setup /config directories - __init_config_etc - - # Define other actions/commands - -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Run any pre-execution checks -__run_pre_execute_checks() { - # 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" - - # 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 - return $exitStatus -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# use this function to update config files - IE: change port -__update_conf_files() { - local exitCode=0 # default exit code - local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # CD into temp to bybass any permission errors - cd /tmp || false # lets keep shellcheck happy by adding false - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # delete files - #__rm "" - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # custom commands - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # replace variables - # __replace "" "" "$CONF_DIR/nginx.conf" - # replace variables recursively - # __find_replace "" "" "$CONF_DIR" - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # define actions - - # exit function - return $exitCode -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# function to run before executing -__pre_execute() { - local exitCode=0 # default exit code - local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname - - # define commands - - # execute if directories is empty - __is_dir_empty "" && true - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Set permissions - __fix_permissions "$SERVICE_USER" "$SERVICE_GROUP" - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Copy /config to /etc - for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do - __initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "$LOG_DIR/init.txt" - done - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Replace variables - HOSTNAME="$sysname" __initialize_replace_variables "$ETC_DIR" "$CONF_DIR" "$WWW_ROOT_DIR" - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # unset unneeded variables - unset filesperms filename config_2_etc change_user change_user ADDITIONAL_CONFIG_DIRS application_files filedirs - # Lets wait a few seconds before continuing - sleep 5 - return $exitCode -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# function to run after executing -__post_execute() { - local pid="" # init pid var - local retVal=0 # set default exit code - local waitTime=60 # how long to wait before executing - local postMessageST="Running post commands for $SERVICE_NAME" # message to show at start - local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion - local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname - - # wait - sleep $waitTime - # execute commands - ( - # show message - __banner "$postMessageST" - # commands to execute - true - # show exit message - __banner "$postMessageEnd: Status $retVal" - ) 2>"/dev/stderr" | tee -p -a "$LOG_DIR/init.txt" & - pid=$! - # set exitCode - ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10 - return $retVal -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# use this function to update config files - IE: change port -__pre_message() { - local exitCode=0 - if [ -n "$user_name" ] || [ -n "$user_pass" ] || [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then - __banner "User info" - [ -n "$user_name" ] && __printf_space "40" "username:" "$user_name" && echo "$user_name" >"${USER_FILE_PREFIX}/${SERVICE_NAME}_name" - [ -n "$user_pass" ] && __printf_space "40" "password:" "saved to ${USER_FILE_PREFIX}/${SERVICE_NAME}_pass" && echo "$user_pass" >"${USER_FILE_PREFIX}/${SERVICE_NAME}_pass" - [ -n "$root_user_name" ] && __printf_space "40" "root username:" "$root_user_name" && echo "$root_user_name" >"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_name" - [ -n "$root_user_pass" ] && __printf_space "40" "root password:" "saved to ${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass" && echo "$root_user_pass" >"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass" - __banner "" - fi - [ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE" - # execute commands - - # set exitCode - return $exitCode -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# use this function to setup ssl support -__update_ssl_conf() { - local exitCode=0 - local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname - # execute commands - - # set exitCode - return $exitCode -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__create_service_env() { - cat </dev/null -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# root/admin user info [password/random] -#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 -#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] -#ENV_USER_NAME="${ENV_USER_NAME:-$NGINX_USER_NAME}" # -#ENV_USER_PASS="${ENV_USER_PASS:-$NGINX_USER_PASS_WORD}" # -#user_name="${ENV_USER_NAME:-$user_name}" # normal user name -#user_pass="${ENV_USER_PASS:-$user_pass}" # normal user password - -EOF - __file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || return 1 -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# script to start server -__run_start_script() { - 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" - # - __run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" "$LOG_DIR/init.txt" || return 20 - # - if [ -z "$cmd" ]; then - __post_execute 2>"/dev/stderr" | tee -p -a "$LOG_DIR/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 "$LOG_DIR/init.txt" - echo "$message" | tee -a -p "$LOG_DIR/init.txt" - su_cmd touch "$SERVICE_PID_FILE" - __post_execute 2>"/dev/stderr" | tee -p -a "$LOG_DIR/init.txt" & - 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 <"$START_SCRIPT" -#!/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_PID_FILE="$SERVICE_PID_FILE" -$execute_command 2>"/dev/stderr" >>"$LOG_DIR/$SERVICE_NAME.log" & -execPid=\$! -sleep 10 -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 "\$cmd has failed to start - args: $args" >&2 -exit \$retVal - -EOF - fi - else - if [ ! -f "$START_SCRIPT" ]; then - execute_command="$(__trim "$su_exec $cmd_exec")" - cat <"$START_SCRIPT" -#!/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_PID_FILE="$SERVICE_PID_FILE" -$execute_command 2>>"/dev/stderr" >>"$LOG_DIR/$SERVICE_NAME.log" & -execPid=\$! -sleep 10 -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 "\$cmd has failed to start - args: $args" >&2 -exit \$retVal - -EOF - fi - fi - fi - [ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT" - [ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT" - runExitCode=$? - return $runExitCode - fi -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# username and password actions -__run_secure_function() { - 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 "$LOG_DIR/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 "$LOG_DIR/init.txt" - fi -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Allow ENV_ variable - Import env file -__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.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" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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"; } -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[ "$IS_WEB_SERVER" = "yes" ] && RESET_ENV="yes" -[ -n "$RUNAS_USER" ] || RUNAS_USER="root" -[ -n "$SERVICE_USER" ] || SERVICE_USER="${RUNAS_USER:-root}" -[ -n "$SERVICE_GROUP" ] || SERVICE_GROUP="${RUNAS_USER:-root}" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Database env -if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then - RESET_ENV="no" - DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}" - DATABASE_USER="${ENV_DATABASE_USER:-${DATABASE_USER:-$user_name}}" - DATABASE_PASSWORD="${ENV_DATABASE_PASSWORD:-${DATABASE_PASSWORD:-$user_pass}}" - DATABASE_ROOT_USER="${ENV_DATABASE_ROOT_USER:-${DATABASE_ROOT_USER:-$root_user_name}}" - DATABASE_ROOT_PASSWORD="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_ROOT_PASSWORD:-$root_user_pass}}" -fi -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Allow per init script usernames and passwords -__file_exists_with_content "$ETC_DIR/auth/user/name" && user_name="$(<"$ETC_DIR/auth/user/name")" -__file_exists_with_content "$ETC_DIR/auth/user/pass" && user_pass="$(<"$ETC_DIR/auth/user/pass")" -__file_exists_with_content "$ETC_DIR/auth/root/name" && root_user_name="$(<"$ETC_DIR/auth/root/name")" -__file_exists_with_content "$ETC_DIR/auth/root/pass" && root_user_pass="$(<"$ETC_DIR/auth/root/pass")" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# set password to random if variable is random -[ "$user_pass" = "random" ] && user_pass="$(__random_password)" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[ "$root_user_pass" = "random" ] && root_user_pass="$(__random_password)" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Allow setting initial users and passwords via environment -user_name="$(eval echo "${ENV_USER_NAME:-$user_name}")" -user_pass="$(eval echo "${ENV_USER_PASS:-$user_pass}")" -root_user_name="$(eval echo "${ENV_ROOT_USER_NAME:-$root_user_name}")" -root_user_pass="$(eval echo "${ENV_ROOT_USER_PASS:-$root_user_pass}")" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Allow variables via imports - Overwrite existing -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[ -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ] && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# ensure needed directories exists -[ -d "$LOG_DIR" ] || mkdir -p "$LOG_DIR" -[ -d "$RUN_DIR" ] || mkdir -p "$RUN_DIR" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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 -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Updating config files -__create_service_env -__update_conf_files -__initialize_database -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__run_secure_function -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# run the pre execute commands -__pre_execute -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log" && errorCode=0 || errorCode=10 -if [ -n "$EXEC_CMD_BIN" ]; then - if [ "$errorCode" -ne 0 ]; then - echo "Failed to execute: ${cmd_exec:-$EXEC_CMD_BIN $EXEC_CMD_ARGS}" | tee -p -a "/data/logs/entrypoint.log" "$LOG_DIR/init.txt" - rm -Rf "$SERVICE_PID_FILE" - SERVICE_EXIT_CODE=10 - SERVICE_IS_RUNNING="no" - else - SERVICE_EXIT_CODE=0 - SERVICE_IS_RUNNING="no" - fi - SERVICE_EXIT_CODE=0 -fi -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__banner "Initializing of $SERVICE_NAME has completed with statusCode: $SERVICE_EXIT_CODE" | tee -p -a "/data/logs/entrypoint.log" "$LOG_DIR/init.txt" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -exit $SERVICE_EXIT_CODE diff --git a/rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh b/rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh index 3b536e9..6bce086 100755 --- a/rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh +++ b/rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh @@ -260,7 +260,9 @@ EOF RUNNER_REGISTER_URL="${RUNNER_REGISTER_URL:-http://127.0.0.1:8000}" RUNNER_AUTH_TOKEN="${RUNNER_AUTH_TOKEN:-$SYS_AUTH_TOKEN}" RUNNER_LABELS="${RUNNER_LABELS:-act_runner}" - if [ ! -f "$RUNNER_HOME/runners" ]; then + if [ -f "$RUNNER_HOME/runners" ]; then + break + else [ -n "$RUNNER_NAME" ] && [ -n "$RUNNER_HOME" ] || break [ -f "$CONF_DIR/tokens/$RUNNER_NAME" ] && RUNNER_AUTH_TOKEN="$(<"$CONF_DIR/tokens/$RUNNER_NAME")" || { [ -n "$SYS_AUTH_TOKEN" ] && echo "$SYS_AUTH_TOKEN" >"$CONF_DIR/tokens/$RUNNER_NAME"; } if [ -z "$RUNNER_AUTH_TOKEN" ]; then @@ -271,6 +273,7 @@ EOF sleep 120 else [ -f "$runner" ] && . "$runner" + echo "creating $RUNNER_NAME in $RUNNER_HOME and registering with $RUNNER_REGISTER_URL" mkdir -p "$RUNNER_HOME" [ -f "$RUNNER_HOME/daemon.yaml" ] || copy "$ETC_DIR/multi.yaml" "$RUNNER_HOME/daemon.yaml"