mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 00:58:34 +00:00
automation tweaks
This commit is contained in:
297
setup.sh
297
setup.sh
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
clear
|
||||
|
||||
# ==============================================
|
||||
# ac-compose - Interactive .env generator
|
||||
@@ -42,139 +43,134 @@ get_template_value() {
|
||||
echo "$value"
|
||||
}
|
||||
|
||||
# Load constants from .env.template (required)
|
||||
readonly DEFAULT_MYSQL_PASSWORD="$(get_template_value "MYSQL_ROOT_PASSWORD")"
|
||||
readonly DEFAULT_REALM_PORT="$(get_template_value "WORLD_EXTERNAL_PORT")"
|
||||
readonly DEFAULT_AUTH_PORT="$(get_template_value "AUTH_EXTERNAL_PORT")"
|
||||
readonly DEFAULT_SOAP_PORT="$(get_template_value "SOAP_EXTERNAL_PORT")"
|
||||
readonly DEFAULT_MYSQL_PORT="$(get_template_value "MYSQL_EXTERNAL_PORT")"
|
||||
readonly DEFAULT_PLAYERBOT_MAX="$(get_template_value "PLAYERBOT_MAX_BOTS")"
|
||||
readonly DEFAULT_LOCAL_STORAGE="$(get_template_value "STORAGE_PATH")"
|
||||
declare -A TEMPLATE_VALUE_MAP=(
|
||||
[DEFAULT_MYSQL_PASSWORD]=MYSQL_ROOT_PASSWORD
|
||||
[DEFAULT_REALM_PORT]=WORLD_EXTERNAL_PORT
|
||||
[DEFAULT_AUTH_PORT]=AUTH_EXTERNAL_PORT
|
||||
[DEFAULT_SOAP_PORT]=SOAP_EXTERNAL_PORT
|
||||
[DEFAULT_MYSQL_PORT]=MYSQL_EXTERNAL_PORT
|
||||
[DEFAULT_PLAYERBOT_MAX]=PLAYERBOT_MAX_BOTS
|
||||
[DEFAULT_LOCAL_STORAGE]=STORAGE_PATH
|
||||
[DEFAULT_BACKUP_PATH]=BACKUP_PATH
|
||||
[PERMISSION_LOCAL_USER]=PERMISSION_LOCAL_USER
|
||||
[PERMISSION_NFS_USER]=PERMISSION_NFS_USER
|
||||
[DEFAULT_CUSTOM_UID]=DEFAULT_CUSTOM_UID
|
||||
[DEFAULT_CUSTOM_GID]=DEFAULT_CUSTOM_GID
|
||||
[DEFAULT_LOCAL_ADDRESS]=SERVER_ADDRESS
|
||||
[DEFAULT_BACKUP_DAYS]=BACKUP_RETENTION_DAYS
|
||||
[DEFAULT_BACKUP_HOURS]=BACKUP_RETENTION_HOURS
|
||||
[DEFAULT_BACKUP_TIME]=BACKUP_DAILY_TIME
|
||||
[DEFAULT_BACKUP_HEALTHCHECK_MAX_MINUTES]=BACKUP_HEALTHCHECK_MAX_MINUTES
|
||||
[DEFAULT_BACKUP_HEALTHCHECK_GRACE_SECONDS]=BACKUP_HEALTHCHECK_GRACE_SECONDS
|
||||
[DEFAULT_NFS_STORAGE]=NFS_STORAGE_PATH
|
||||
[DEFAULT_MOUNT_STORAGE]=MOUNT_STORAGE_PATH
|
||||
[DEFAULT_MYSQL_IMAGE]=MYSQL_IMAGE
|
||||
[DEFAULT_AC_DB_IMPORT_IMAGE]=AC_DB_IMPORT_IMAGE
|
||||
[DEFAULT_AC_AUTHSERVER_IMAGE]=AC_AUTHSERVER_IMAGE
|
||||
[DEFAULT_AC_WORLDSERVER_IMAGE]=AC_WORLDSERVER_IMAGE
|
||||
[DEFAULT_AC_CLIENT_DATA_IMAGE]=AC_CLIENT_DATA_IMAGE
|
||||
[DEFAULT_AUTH_IMAGE_PLAYERBOTS]=AC_AUTHSERVER_IMAGE_PLAYERBOTS
|
||||
[DEFAULT_WORLD_IMAGE_PLAYERBOTS]=AC_WORLDSERVER_IMAGE_PLAYERBOTS
|
||||
[DEFAULT_CLIENT_DATA_IMAGE_PLAYERBOTS]=AC_CLIENT_DATA_IMAGE_PLAYERBOTS
|
||||
[DEFAULT_AUTH_IMAGE_MODULES]=AC_AUTHSERVER_IMAGE_MODULES
|
||||
[DEFAULT_WORLD_IMAGE_MODULES]=AC_WORLDSERVER_IMAGE_MODULES
|
||||
[DEFAULT_ALPINE_GIT_IMAGE]=ALPINE_GIT_IMAGE
|
||||
[DEFAULT_ALPINE_IMAGE]=ALPINE_IMAGE
|
||||
[DEFAULT_DB_AUTH_NAME]=DB_AUTH_NAME
|
||||
[DEFAULT_DB_WORLD_NAME]=DB_WORLD_NAME
|
||||
[DEFAULT_DB_CHARACTERS_NAME]=DB_CHARACTERS_NAME
|
||||
[DEFAULT_DB_PLAYERBOTS_NAME]=DB_PLAYERBOTS_NAME
|
||||
[DEFAULT_CONTAINER_MYSQL]=CONTAINER_MYSQL
|
||||
[DEFAULT_CONTAINER_DB_IMPORT]=CONTAINER_DB_IMPORT
|
||||
[DEFAULT_CONTAINER_DB_INIT]=CONTAINER_DB_INIT
|
||||
[DEFAULT_CONTAINER_BACKUP]=CONTAINER_BACKUP
|
||||
[DEFAULT_CONTAINER_MODULES]=CONTAINER_MODULES
|
||||
[DEFAULT_CONTAINER_POST_INSTALL]=CONTAINER_POST_INSTALL
|
||||
[DEFAULT_COMPOSE_PROJECT_NAME]=COMPOSE_PROJECT_NAME
|
||||
[DEFAULT_CLIENT_DATA_VOLUME]=CLIENT_DATA_VOLUME
|
||||
[DEFAULT_CLIENT_DATA_CACHE_PATH]=CLIENT_DATA_CACHE_PATH
|
||||
[DEFAULT_CLIENT_DATA_VERSION]=CLIENT_DATA_VERSION
|
||||
[DEFAULT_NETWORK_NAME]=NETWORK_NAME
|
||||
[DEFAULT_NETWORK_SUBNET]=NETWORK_SUBNET
|
||||
[DEFAULT_NETWORK_GATEWAY]=NETWORK_GATEWAY
|
||||
[DEFAULT_MYSQL_CHARACTER_SET]=MYSQL_CHARACTER_SET
|
||||
[DEFAULT_MYSQL_COLLATION]=MYSQL_COLLATION
|
||||
[DEFAULT_MYSQL_MAX_CONNECTIONS]=MYSQL_MAX_CONNECTIONS
|
||||
[DEFAULT_MYSQL_INNODB_BUFFER_POOL_SIZE]=MYSQL_INNODB_BUFFER_POOL_SIZE
|
||||
[DEFAULT_MYSQL_INNODB_LOG_FILE_SIZE]=MYSQL_INNODB_LOG_FILE_SIZE
|
||||
[DEFAULT_MYSQL_INNODB_REDO_LOG_CAPACITY]=MYSQL_INNODB_REDO_LOG_CAPACITY
|
||||
[DEFAULT_MYSQL_RUNTIME_TMPFS_SIZE]=MYSQL_RUNTIME_TMPFS_SIZE
|
||||
[DEFAULT_MYSQL_HOST]=MYSQL_HOST
|
||||
[DEFAULT_DB_WAIT_RETRIES]=DB_WAIT_RETRIES
|
||||
[DEFAULT_DB_WAIT_SLEEP]=DB_WAIT_SLEEP
|
||||
[DEFAULT_HOST_ZONEINFO_PATH]=HOST_ZONEINFO_PATH
|
||||
[DEFAULT_ELUNA_SCRIPT_PATH]=AC_ELUNA_SCRIPT_PATH
|
||||
[DEFAULT_PMA_EXTERNAL_PORT]=PMA_EXTERNAL_PORT
|
||||
[DEFAULT_PMA_UPLOAD_LIMIT]=PMA_UPLOAD_LIMIT
|
||||
[DEFAULT_PMA_MEMORY_LIMIT]=PMA_MEMORY_LIMIT
|
||||
[DEFAULT_PMA_MAX_EXECUTION_TIME]=PMA_MAX_EXECUTION_TIME
|
||||
[DEFAULT_KEIRA3_EXTERNAL_PORT]=KEIRA3_EXTERNAL_PORT
|
||||
[DEFAULT_PMA_USER]=PMA_USER
|
||||
[DEFAULT_PMA_ARBITRARY]=PMA_ARBITRARY
|
||||
[DEFAULT_PMA_ABSOLUTE_URI]=PMA_ABSOLUTE_URI
|
||||
[DEFAULT_AUTH_INTERNAL_PORT]=AUTH_PORT
|
||||
[DEFAULT_WORLD_INTERNAL_PORT]=WORLD_PORT
|
||||
[DEFAULT_SOAP_INTERNAL_PORT]=SOAP_PORT
|
||||
[DEFAULT_MYSQL_INTERNAL_PORT]=MYSQL_PORT
|
||||
[DEFAULT_TZ]=TZ
|
||||
[DEFAULT_MYSQL_ROOT_HOST]=MYSQL_ROOT_HOST
|
||||
[DEFAULT_MYSQL_USER]=MYSQL_USER
|
||||
[DEFAULT_ELUNA_ENABLED]=AC_ELUNA_ENABLED
|
||||
[DEFAULT_ELUNA_TRACE_BACK]=AC_ELUNA_TRACE_BACK
|
||||
[DEFAULT_ELUNA_AUTO_RELOAD]=AC_ELUNA_AUTO_RELOAD
|
||||
[DEFAULT_ELUNA_BYTECODE_CACHE]=AC_ELUNA_BYTECODE_CACHE
|
||||
[DEFAULT_ELUNA_AUTO_RELOAD_INTERVAL]=AC_ELUNA_AUTO_RELOAD_INTERVAL
|
||||
[DEFAULT_ELUNA_REQUIRE_PATHS]=AC_ELUNA_REQUIRE_PATHS
|
||||
[DEFAULT_ELUNA_REQUIRE_CPATHS]=AC_ELUNA_REQUIRE_CPATHS
|
||||
[DEFAULT_MODULE_ELUNA]=MODULE_ELUNA
|
||||
)
|
||||
|
||||
# Permission schemes (hardcoded as not in template)
|
||||
readonly PERMISSION_LOCAL_USER="0:0"
|
||||
readonly PERMISSION_NFS_USER="1001:1000"
|
||||
readonly DEFAULT_CUSTOM_UID="1000"
|
||||
readonly DEFAULT_CUSTOM_GID="1000"
|
||||
for __template_var in "${!TEMPLATE_VALUE_MAP[@]}"; do
|
||||
__template_key="${TEMPLATE_VALUE_MAP[$__template_var]}"
|
||||
__template_value="$(get_template_value "${__template_key}")"
|
||||
printf -v "${__template_var}" '%s' "${__template_value}"
|
||||
readonly "${__template_var}"
|
||||
done
|
||||
unset __template_var __template_key __template_value
|
||||
|
||||
# Static values
|
||||
readonly DEFAULT_LOCAL_ADDRESS="$(get_template_value "SERVER_ADDRESS")"
|
||||
readonly DEFAULT_FALLBACK_LAN_IP="192.168.1.100"
|
||||
readonly DEFAULT_DOMAIN_PLACEHOLDER="your-domain.com"
|
||||
readonly DEFAULT_BACKUP_DAYS="$(get_template_value "BACKUP_RETENTION_DAYS")"
|
||||
readonly DEFAULT_BACKUP_HOURS="$(get_template_value "BACKUP_RETENTION_HOURS")"
|
||||
readonly DEFAULT_BACKUP_TIME="$(get_template_value "BACKUP_DAILY_TIME")"
|
||||
readonly DEFAULT_BACKUP_HEALTHCHECK_MAX_MINUTES="$(get_template_value "BACKUP_HEALTHCHECK_MAX_MINUTES")"
|
||||
readonly DEFAULT_BACKUP_HEALTHCHECK_GRACE_SECONDS="$(get_template_value "BACKUP_HEALTHCHECK_GRACE_SECONDS")"
|
||||
readonly DEFAULT_NFS_STORAGE="/nfs/azerothcore"
|
||||
readonly DEFAULT_MOUNT_STORAGE="/mnt/azerothcore-data"
|
||||
|
||||
# Docker images (from .env.template)
|
||||
readonly DEFAULT_MYSQL_IMAGE="$(get_template_value "MYSQL_IMAGE")"
|
||||
readonly DEFAULT_AC_DB_IMPORT_IMAGE="$(get_template_value "AC_DB_IMPORT_IMAGE")"
|
||||
readonly DEFAULT_AC_AUTHSERVER_IMAGE="$(get_template_value "AC_AUTHSERVER_IMAGE")"
|
||||
readonly DEFAULT_AC_WORLDSERVER_IMAGE="$(get_template_value "AC_WORLDSERVER_IMAGE")"
|
||||
readonly DEFAULT_AC_CLIENT_DATA_IMAGE="$(get_template_value "AC_CLIENT_DATA_IMAGE")"
|
||||
readonly DEFAULT_AUTH_IMAGE_PLAYERBOTS="$(get_template_value "AC_AUTHSERVER_IMAGE_PLAYERBOTS")"
|
||||
readonly DEFAULT_WORLD_IMAGE_PLAYERBOTS="$(get_template_value "AC_WORLDSERVER_IMAGE_PLAYERBOTS")"
|
||||
readonly DEFAULT_CLIENT_DATA_IMAGE_PLAYERBOTS="$(get_template_value "AC_CLIENT_DATA_IMAGE_PLAYERBOTS")"
|
||||
readonly DEFAULT_AUTH_IMAGE_MODULES="$(get_template_value "AC_AUTHSERVER_IMAGE_MODULES")"
|
||||
readonly DEFAULT_WORLD_IMAGE_MODULES="$(get_template_value "AC_WORLDSERVER_IMAGE_MODULES")"
|
||||
readonly DEFAULT_ALPINE_GIT_IMAGE="$(get_template_value "ALPINE_GIT_IMAGE")"
|
||||
readonly DEFAULT_ALPINE_IMAGE="$(get_template_value "ALPINE_IMAGE")"
|
||||
|
||||
# Database names
|
||||
readonly DEFAULT_DB_AUTH_NAME="$(get_template_value "DB_AUTH_NAME")"
|
||||
readonly DEFAULT_DB_WORLD_NAME="$(get_template_value "DB_WORLD_NAME")"
|
||||
readonly DEFAULT_DB_CHARACTERS_NAME="$(get_template_value "DB_CHARACTERS_NAME")"
|
||||
readonly DEFAULT_DB_PLAYERBOTS_NAME="$(get_template_value "DB_PLAYERBOTS_NAME")"
|
||||
|
||||
# Container names
|
||||
readonly DEFAULT_CONTAINER_MYSQL="$(get_template_value "CONTAINER_MYSQL")"
|
||||
readonly DEFAULT_CONTAINER_DB_IMPORT="$(get_template_value "CONTAINER_DB_IMPORT")"
|
||||
readonly DEFAULT_CONTAINER_DB_INIT="$(get_template_value "CONTAINER_DB_INIT")"
|
||||
readonly DEFAULT_CONTAINER_BACKUP="$(get_template_value "CONTAINER_BACKUP")"
|
||||
readonly DEFAULT_CONTAINER_MODULES="$(get_template_value "CONTAINER_MODULES")"
|
||||
readonly DEFAULT_CONTAINER_POST_INSTALL="$(get_template_value "CONTAINER_POST_INSTALL")"
|
||||
readonly DEFAULT_COMPOSE_PROJECT_NAME="$(get_template_value "COMPOSE_PROJECT_NAME")"
|
||||
readonly DEFAULT_CLIENT_DATA_VOLUME="$(get_template_value "CLIENT_DATA_VOLUME")"
|
||||
|
||||
# Version constants
|
||||
readonly DEFAULT_CLIENT_DATA_VERSION="$(get_template_value "CLIENT_DATA_VERSION")"
|
||||
|
||||
# Network configuration
|
||||
readonly DEFAULT_NETWORK_NAME="$(get_template_value "NETWORK_NAME")"
|
||||
readonly DEFAULT_NETWORK_SUBNET="$(get_template_value "NETWORK_SUBNET")"
|
||||
readonly DEFAULT_NETWORK_GATEWAY="$(get_template_value "NETWORK_GATEWAY")"
|
||||
|
||||
# MySQL configuration
|
||||
readonly DEFAULT_MYSQL_CHARACTER_SET="$(get_template_value "MYSQL_CHARACTER_SET")"
|
||||
readonly DEFAULT_MYSQL_COLLATION="$(get_template_value "MYSQL_COLLATION")"
|
||||
readonly DEFAULT_MYSQL_MAX_CONNECTIONS="$(get_template_value "MYSQL_MAX_CONNECTIONS")"
|
||||
readonly DEFAULT_MYSQL_INNODB_BUFFER_POOL_SIZE="$(get_template_value "MYSQL_INNODB_BUFFER_POOL_SIZE")"
|
||||
readonly DEFAULT_MYSQL_INNODB_LOG_FILE_SIZE="$(get_template_value "MYSQL_INNODB_LOG_FILE_SIZE")"
|
||||
readonly DEFAULT_MYSQL_INNODB_REDO_LOG_CAPACITY="$(get_template_value "MYSQL_INNODB_REDO_LOG_CAPACITY")"
|
||||
readonly DEFAULT_MYSQL_RUNTIME_TMPFS_SIZE="$(get_template_value "MYSQL_RUNTIME_TMPFS_SIZE")"
|
||||
readonly DEFAULT_MYSQL_HOST="$(get_template_value "MYSQL_HOST")"
|
||||
readonly DEFAULT_DB_WAIT_RETRIES="$(get_template_value "DB_WAIT_RETRIES")"
|
||||
readonly DEFAULT_DB_WAIT_SLEEP="$(get_template_value "DB_WAIT_SLEEP")"
|
||||
|
||||
# Paths
|
||||
readonly DEFAULT_HOST_ZONEINFO_PATH="$(get_template_value "HOST_ZONEINFO_PATH")"
|
||||
readonly DEFAULT_ELUNA_SCRIPT_PATH="$(get_template_value "AC_ELUNA_SCRIPT_PATH")"
|
||||
|
||||
# Tool configuration
|
||||
readonly DEFAULT_PMA_EXTERNAL_PORT="$(get_template_value "PMA_EXTERNAL_PORT")"
|
||||
readonly DEFAULT_PMA_UPLOAD_LIMIT="$(get_template_value "PMA_UPLOAD_LIMIT")"
|
||||
readonly DEFAULT_PMA_MEMORY_LIMIT="$(get_template_value "PMA_MEMORY_LIMIT")"
|
||||
readonly DEFAULT_PMA_MAX_EXECUTION_TIME="$(get_template_value "PMA_MAX_EXECUTION_TIME")"
|
||||
readonly DEFAULT_KEIRA3_EXTERNAL_PORT="$(get_template_value "KEIRA3_EXTERNAL_PORT")"
|
||||
readonly DEFAULT_PMA_USER="$(get_template_value "PMA_USER")"
|
||||
readonly DEFAULT_PMA_ARBITRARY="$(get_template_value "PMA_ARBITRARY")"
|
||||
readonly DEFAULT_PMA_ABSOLUTE_URI="$(get_template_value "PMA_ABSOLUTE_URI")"
|
||||
|
||||
# Module preset names (not in template)
|
||||
readonly DEFAULT_PRESET_SUGGESTED="suggested-modules"
|
||||
readonly DEFAULT_PRESET_PLAYERBOTS="playerbots-suggested-modules"
|
||||
|
||||
# Internal ports
|
||||
readonly DEFAULT_AUTH_INTERNAL_PORT="$(get_template_value "AUTH_PORT")"
|
||||
readonly DEFAULT_WORLD_INTERNAL_PORT="$(get_template_value "WORLD_PORT")"
|
||||
readonly DEFAULT_SOAP_INTERNAL_PORT="$(get_template_value "SOAP_PORT")"
|
||||
readonly DEFAULT_MYSQL_INTERNAL_PORT="$(get_template_value "MYSQL_PORT")"
|
||||
|
||||
# System configuration
|
||||
readonly DEFAULT_TZ="$(get_template_value "TZ")"
|
||||
readonly DEFAULT_MYSQL_ROOT_HOST="$(get_template_value "MYSQL_ROOT_HOST")"
|
||||
readonly DEFAULT_MYSQL_USER="$(get_template_value "MYSQL_USER")"
|
||||
|
||||
# Eluna configuration
|
||||
readonly DEFAULT_ELUNA_ENABLED="$(get_template_value "AC_ELUNA_ENABLED")"
|
||||
readonly DEFAULT_ELUNA_TRACE_BACK="$(get_template_value "AC_ELUNA_TRACE_BACK")"
|
||||
readonly DEFAULT_ELUNA_AUTO_RELOAD="$(get_template_value "AC_ELUNA_AUTO_RELOAD")"
|
||||
readonly DEFAULT_ELUNA_BYTECODE_CACHE="$(get_template_value "AC_ELUNA_BYTECODE_CACHE")"
|
||||
readonly DEFAULT_ELUNA_AUTO_RELOAD_INTERVAL="$(get_template_value "AC_ELUNA_AUTO_RELOAD_INTERVAL")"
|
||||
readonly DEFAULT_ELUNA_REQUIRE_PATHS="$(get_template_value "AC_ELUNA_REQUIRE_PATHS")"
|
||||
readonly DEFAULT_ELUNA_REQUIRE_CPATHS="$(get_template_value "AC_ELUNA_REQUIRE_CPATHS")"
|
||||
readonly DEFAULT_MODULE_ELUNA="$(get_template_value "MODULE_ELUNA")"
|
||||
|
||||
# Health check configuration
|
||||
readonly DEFAULT_MYSQL_HEALTHCHECK_INTERVAL="$(get_template_value "MYSQL_HEALTHCHECK_INTERVAL")"
|
||||
readonly DEFAULT_MYSQL_HEALTHCHECK_TIMEOUT="$(get_template_value "MYSQL_HEALTHCHECK_TIMEOUT")"
|
||||
readonly DEFAULT_MYSQL_HEALTHCHECK_RETRIES="$(get_template_value "MYSQL_HEALTHCHECK_RETRIES")"
|
||||
readonly DEFAULT_MYSQL_HEALTHCHECK_START_PERIOD="$(get_template_value "MYSQL_HEALTHCHECK_START_PERIOD")"
|
||||
readonly DEFAULT_AUTH_HEALTHCHECK_INTERVAL="$(get_template_value "AUTH_HEALTHCHECK_INTERVAL")"
|
||||
readonly DEFAULT_AUTH_HEALTHCHECK_TIMEOUT="$(get_template_value "AUTH_HEALTHCHECK_TIMEOUT")"
|
||||
readonly DEFAULT_AUTH_HEALTHCHECK_RETRIES="$(get_template_value "AUTH_HEALTHCHECK_RETRIES")"
|
||||
readonly DEFAULT_AUTH_HEALTHCHECK_START_PERIOD="$(get_template_value "AUTH_HEALTHCHECK_START_PERIOD")"
|
||||
readonly DEFAULT_WORLD_HEALTHCHECK_INTERVAL="$(get_template_value "WORLD_HEALTHCHECK_INTERVAL")"
|
||||
readonly DEFAULT_WORLD_HEALTHCHECK_TIMEOUT="$(get_template_value "WORLD_HEALTHCHECK_TIMEOUT")"
|
||||
readonly DEFAULT_WORLD_HEALTHCHECK_RETRIES="$(get_template_value "WORLD_HEALTHCHECK_RETRIES")"
|
||||
readonly DEFAULT_WORLD_HEALTHCHECK_START_PERIOD="$(get_template_value "WORLD_HEALTHCHECK_START_PERIOD")"
|
||||
readonly DEFAULT_BACKUP_HEALTHCHECK_INTERVAL="$(get_template_value "BACKUP_HEALTHCHECK_INTERVAL")"
|
||||
readonly DEFAULT_BACKUP_HEALTHCHECK_TIMEOUT="$(get_template_value "BACKUP_HEALTHCHECK_TIMEOUT")"
|
||||
readonly DEFAULT_BACKUP_HEALTHCHECK_RETRIES="$(get_template_value "BACKUP_HEALTHCHECK_RETRIES")"
|
||||
readonly DEFAULT_BACKUP_HEALTHCHECK_START_PERIOD="$(get_template_value "BACKUP_HEALTHCHECK_START_PERIOD")"
|
||||
# Health check configuration (loaded via loop)
|
||||
readonly -a HEALTHCHECK_KEYS=(
|
||||
MYSQL_HEALTHCHECK_INTERVAL
|
||||
MYSQL_HEALTHCHECK_TIMEOUT
|
||||
MYSQL_HEALTHCHECK_RETRIES
|
||||
MYSQL_HEALTHCHECK_START_PERIOD
|
||||
AUTH_HEALTHCHECK_INTERVAL
|
||||
AUTH_HEALTHCHECK_TIMEOUT
|
||||
AUTH_HEALTHCHECK_RETRIES
|
||||
AUTH_HEALTHCHECK_START_PERIOD
|
||||
WORLD_HEALTHCHECK_INTERVAL
|
||||
WORLD_HEALTHCHECK_TIMEOUT
|
||||
WORLD_HEALTHCHECK_RETRIES
|
||||
WORLD_HEALTHCHECK_START_PERIOD
|
||||
BACKUP_HEALTHCHECK_INTERVAL
|
||||
BACKUP_HEALTHCHECK_TIMEOUT
|
||||
BACKUP_HEALTHCHECK_RETRIES
|
||||
BACKUP_HEALTHCHECK_START_PERIOD
|
||||
)
|
||||
for __hc_key in "${HEALTHCHECK_KEYS[@]}"; do
|
||||
__hc_value="$(get_template_value "${__hc_key}")"
|
||||
printf -v "DEFAULT_${__hc_key}" '%s' "$__hc_value"
|
||||
readonly "DEFAULT_${__hc_key}"
|
||||
done
|
||||
unset __hc_key __hc_value
|
||||
|
||||
# Route detection IP (not in template)
|
||||
readonly ROUTE_DETECTION_IP="1.1.1.1"
|
||||
@@ -1252,7 +1248,6 @@ fi
|
||||
fi
|
||||
|
||||
DB_PLAYERBOTS_NAME=${DB_PLAYERBOTS_NAME:-$DEFAULT_DB_PLAYERBOTS_NAME}
|
||||
local CLIENT_DATA_CACHE_PATH_VALUE="${LOCAL_STORAGE_ROOT}/client-data-cache"
|
||||
HOST_ZONEINFO_PATH=${HOST_ZONEINFO_PATH:-$DEFAULT_HOST_ZONEINFO_PATH}
|
||||
MYSQL_INNODB_REDO_LOG_CAPACITY=${MYSQL_INNODB_REDO_LOG_CAPACITY:-$DEFAULT_MYSQL_INNODB_REDO_LOG_CAPACITY}
|
||||
MYSQL_RUNTIME_TMPFS_SIZE=${MYSQL_RUNTIME_TMPFS_SIZE:-$DEFAULT_MYSQL_RUNTIME_TMPFS_SIZE}
|
||||
@@ -1273,34 +1268,25 @@ fi
|
||||
WORLD_HEALTHCHECK_TIMEOUT=${WORLD_HEALTHCHECK_TIMEOUT:-$DEFAULT_WORLD_HEALTHCHECK_TIMEOUT}
|
||||
WORLD_HEALTHCHECK_RETRIES=${WORLD_HEALTHCHECK_RETRIES:-$DEFAULT_WORLD_HEALTHCHECK_RETRIES}
|
||||
WORLD_HEALTHCHECK_START_PERIOD=${WORLD_HEALTHCHECK_START_PERIOD:-$DEFAULT_WORLD_HEALTHCHECK_START_PERIOD}
|
||||
BACKUP_HEALTHCHECK_INTERVAL=${BACKUP_HEALTHCHECK_INTERVAL:-$DEFAULT_BACKUP_HEALTHCHECK_INTERVAL}
|
||||
BACKUP_HEALTHCHECK_TIMEOUT=${BACKUP_HEALTHCHECK_TIMEOUT:-$DEFAULT_BACKUP_HEALTHCHECK_TIMEOUT}
|
||||
BACKUP_HEALTHCHECK_RETRIES=${BACKUP_HEALTHCHECK_RETRIES:-$DEFAULT_BACKUP_HEALTHCHECK_RETRIES}
|
||||
BACKUP_HEALTHCHECK_START_PERIOD=${BACKUP_HEALTHCHECK_START_PERIOD:-$DEFAULT_BACKUP_HEALTHCHECK_START_PERIOD}
|
||||
for hc_key in "${HEALTHCHECK_KEYS[@]}"; do
|
||||
default_var="DEFAULT_${hc_key}"
|
||||
printf -v "$hc_key" '%s' "${!hc_key:-${!default_var}}"
|
||||
done
|
||||
unset hc_key default_var
|
||||
MODULE_ELUNA=${MODULE_ELUNA:-$DEFAULT_MODULE_ELUNA}
|
||||
local HOST_BACKUP_PATH_VALUE_INPUT="${HOST_BACKUP_PATH:-}"
|
||||
local storage_base="${STORAGE_PATH%/}"
|
||||
[ -z "$storage_base" ] && storage_base="/"
|
||||
local HOST_BACKUP_PATH_VALUE
|
||||
if [ -n "$HOST_BACKUP_PATH_VALUE_INPUT" ]; then
|
||||
HOST_BACKUP_PATH_VALUE="$HOST_BACKUP_PATH_VALUE_INPUT"
|
||||
elif [ "$storage_base" = "/" ]; then
|
||||
HOST_BACKUP_PATH_VALUE="/backups"
|
||||
else
|
||||
HOST_BACKUP_PATH_VALUE="${storage_base}/backups"
|
||||
fi
|
||||
BACKUP_PATH=${BACKUP_PATH:-$DEFAULT_BACKUP_PATH}
|
||||
|
||||
cat > "$ENV_OUT" <<EOF
|
||||
{
|
||||
cat <<EOF
|
||||
# Generated by ac-compose/setup.sh
|
||||
|
||||
COMPOSE_PROJECT_NAME=$DEFAULT_COMPOSE_PROJECT_NAME
|
||||
|
||||
STORAGE_PATH=$STORAGE_PATH
|
||||
STORAGE_PATH_LOCAL=$LOCAL_STORAGE_ROOT
|
||||
HOST_BACKUP_PATH=$HOST_BACKUP_PATH_VALUE
|
||||
BACKUP_PATH=$BACKUP_PATH
|
||||
HOST_ZONEINFO_PATH=${HOST_ZONEINFO_PATH:-$DEFAULT_HOST_ZONEINFO_PATH}
|
||||
TZ=$DEFAULT_TZ
|
||||
|
||||
# Database
|
||||
MYSQL_IMAGE=$DEFAULT_MYSQL_IMAGE
|
||||
CONTAINER_MYSQL=$DEFAULT_CONTAINER_MYSQL
|
||||
@@ -1336,7 +1322,7 @@ AC_WORLDSERVER_IMAGE_MODULES=${AC_WORLDSERVER_IMAGE_MODULES_VALUE}
|
||||
# Client data images
|
||||
AC_CLIENT_DATA_IMAGE=$DEFAULT_AC_CLIENT_DATA_IMAGE
|
||||
AC_CLIENT_DATA_IMAGE_PLAYERBOTS=$DEFAULT_CLIENT_DATA_IMAGE_PLAYERBOTS
|
||||
CLIENT_DATA_CACHE_PATH=$CLIENT_DATA_CACHE_PATH_VALUE
|
||||
CLIENT_DATA_CACHE_PATH=$DEFAULT_CLIENT_DATA_CACHE_PATH
|
||||
CLIENT_DATA_VOLUME=${CLIENT_DATA_VOLUME:-$DEFAULT_CLIENT_DATA_VOLUME}
|
||||
|
||||
# Containers
|
||||
@@ -1364,10 +1350,6 @@ BACKUP_RETENTION_HOURS=$BACKUP_RETENTION_HOURS
|
||||
BACKUP_DAILY_TIME=$BACKUP_DAILY_TIME
|
||||
BACKUP_HEALTHCHECK_MAX_MINUTES=$BACKUP_HEALTHCHECK_MAX_MINUTES
|
||||
BACKUP_HEALTHCHECK_GRACE_SECONDS=$BACKUP_HEALTHCHECK_GRACE_SECONDS
|
||||
BACKUP_HEALTHCHECK_INTERVAL=$BACKUP_HEALTHCHECK_INTERVAL
|
||||
BACKUP_HEALTHCHECK_TIMEOUT=$BACKUP_HEALTHCHECK_TIMEOUT
|
||||
BACKUP_HEALTHCHECK_RETRIES=$BACKUP_HEALTHCHECK_RETRIES
|
||||
BACKUP_HEALTHCHECK_START_PERIOD=$BACKUP_HEALTHCHECK_START_PERIOD
|
||||
|
||||
# Container user
|
||||
CONTAINER_USER=$CONTAINER_USER
|
||||
@@ -1452,18 +1434,11 @@ KEIRA_DATABASE_HOST=$DEFAULT_CONTAINER_MYSQL
|
||||
KEIRA_DATABASE_PORT=$DEFAULT_MYSQL_INTERNAL_PORT
|
||||
|
||||
# Health checks
|
||||
MYSQL_HEALTHCHECK_INTERVAL=$MYSQL_HEALTHCHECK_INTERVAL
|
||||
MYSQL_HEALTHCHECK_TIMEOUT=$MYSQL_HEALTHCHECK_TIMEOUT
|
||||
MYSQL_HEALTHCHECK_RETRIES=$MYSQL_HEALTHCHECK_RETRIES
|
||||
MYSQL_HEALTHCHECK_START_PERIOD=$MYSQL_HEALTHCHECK_START_PERIOD
|
||||
AUTH_HEALTHCHECK_INTERVAL=$AUTH_HEALTHCHECK_INTERVAL
|
||||
AUTH_HEALTHCHECK_TIMEOUT=$AUTH_HEALTHCHECK_TIMEOUT
|
||||
AUTH_HEALTHCHECK_RETRIES=$AUTH_HEALTHCHECK_RETRIES
|
||||
AUTH_HEALTHCHECK_START_PERIOD=$AUTH_HEALTHCHECK_START_PERIOD
|
||||
WORLD_HEALTHCHECK_INTERVAL=$WORLD_HEALTHCHECK_INTERVAL
|
||||
WORLD_HEALTHCHECK_TIMEOUT=$WORLD_HEALTHCHECK_TIMEOUT
|
||||
WORLD_HEALTHCHECK_RETRIES=$WORLD_HEALTHCHECK_RETRIES
|
||||
WORLD_HEALTHCHECK_START_PERIOD=$WORLD_HEALTHCHECK_START_PERIOD
|
||||
EOF
|
||||
for hc_key in "${HEALTHCHECK_KEYS[@]}"; do
|
||||
printf "%s=%s\n" "$hc_key" "${!hc_key}"
|
||||
done
|
||||
cat <<EOF
|
||||
|
||||
# Networking
|
||||
NETWORK_NAME=$DEFAULT_NETWORK_NAME
|
||||
@@ -1474,11 +1449,13 @@ NETWORK_GATEWAY=$DEFAULT_NETWORK_GATEWAY
|
||||
ALPINE_GIT_IMAGE=$DEFAULT_ALPINE_GIT_IMAGE
|
||||
ALPINE_IMAGE=$DEFAULT_ALPINE_IMAGE
|
||||
EOF
|
||||
} > "$ENV_OUT"
|
||||
|
||||
local storage_abs_path="$STORAGE_PATH"
|
||||
local storage_abs_path="${STORAGE_PATH:-$DEFAULT_LOCAL_STORAGE}"
|
||||
if [[ "$storage_abs_path" != /* ]]; then
|
||||
storage_abs_path="$(pwd)/${storage_abs_path#./}"
|
||||
fi
|
||||
storage_abs_path="${storage_abs_path%/}"
|
||||
local host_modules_dir="${storage_abs_path}/modules"
|
||||
mkdir -p "$host_modules_dir"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user