mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-22 13:06:24 +00:00
171 lines
7.1 KiB
Bash
171 lines
7.1 KiB
Bash
# Setup defaults and template-backed constants for setup.sh
|
|
|
|
# setup.sh -> scripts/bash/lib/common.sh (shared helpers)
|
|
source "$SCRIPT_DIR/scripts/bash/lib/common.sh"
|
|
|
|
# Feature Flags
|
|
# Set to 0 to disable server configuration preset selection
|
|
ENABLE_CONFIG_PRESETS="${ENABLE_CONFIG_PRESETS:-0}"
|
|
|
|
|
|
sanitize_project_name(){
|
|
project_name::sanitize "$1"
|
|
}
|
|
|
|
resolve_project_image_tag(){
|
|
local project="$1" tag="$2"
|
|
echo "${project}:${tag}"
|
|
}
|
|
|
|
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_MIN]=PLAYERBOT_MIN_BOTS
|
|
[DEFAULT_PLAYERBOT_MAX]=PLAYERBOT_MAX_BOTS
|
|
[DEFAULT_LOCAL_STORAGE]=STORAGE_PATH
|
|
[DEFAULT_BACKUP_PATH]=BACKUP_PATH
|
|
[DEFAULT_COMPOSE_OVERRIDE_MYSQL_EXPOSE_ENABLED]=COMPOSE_OVERRIDE_MYSQL_EXPOSE_ENABLED
|
|
[DEFAULT_COMPOSE_OVERRIDE_WORLDSERVER_DEBUG_LOGGING_ENABLED]=COMPOSE_OVERRIDE_WORLDSERVER_DEBUG_LOGGING_ENABLED
|
|
[PERMISSION_LOCAL_USER]=DEFAULT_PERMISSION_LOCAL_USER
|
|
[PERMISSION_NFS_USER]=DEFAULT_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]=DEFAULT_NFS_STORAGE_PATH
|
|
[DEFAULT_MOUNT_STORAGE]=DEFAULT_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_DOCKER_IMAGE_TAG]=DOCKER_IMAGE_TAG
|
|
[DEFAULT_AUTHSERVER_IMAGE_BASE]=AC_AUTHSERVER_IMAGE_BASE
|
|
[DEFAULT_WORLDSERVER_IMAGE_BASE]=AC_WORLDSERVER_IMAGE_BASE
|
|
[DEFAULT_DB_IMPORT_IMAGE_BASE]=AC_DB_IMPORT_IMAGE_BASE
|
|
[DEFAULT_CLIENT_DATA_IMAGE_BASE]=AC_CLIENT_DATA_IMAGE_BASE
|
|
[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_PATH]=CLIENT_DATA_PATH
|
|
[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_DISABLE_BINLOG]=MYSQL_DISABLE_BINLOG
|
|
[DEFAULT_MYSQL_CONFIG_DIR]=MYSQL_CONFIG_DIR
|
|
[DEFAULT_MYSQL_HOST]=MYSQL_HOST
|
|
[DEFAULT_DB_WAIT_RETRIES]=DB_WAIT_RETRIES
|
|
[DEFAULT_DB_WAIT_SLEEP]=DB_WAIT_SLEEP
|
|
[DEFAULT_DB_RECONNECT_SECONDS]=DB_RECONNECT_SECONDS
|
|
[DEFAULT_DB_RECONNECT_ATTEMPTS]=DB_RECONNECT_ATTEMPTS
|
|
[DEFAULT_DB_UPDATES_ALLOWED_MODULES]=DB_UPDATES_ALLOWED_MODULES
|
|
[DEFAULT_DB_UPDATES_REDUNDANCY]=DB_UPDATES_REDUNDANCY
|
|
[DEFAULT_DB_LOGIN_WORKER_THREADS]=DB_LOGIN_WORKER_THREADS
|
|
[DEFAULT_DB_WORLD_WORKER_THREADS]=DB_WORLD_WORKER_THREADS
|
|
[DEFAULT_DB_CHARACTER_WORKER_THREADS]=DB_CHARACTER_WORKER_THREADS
|
|
[DEFAULT_DB_LOGIN_SYNCH_THREADS]=DB_LOGIN_SYNCH_THREADS
|
|
[DEFAULT_DB_WORLD_SYNCH_THREADS]=DB_WORLD_SYNCH_THREADS
|
|
[DEFAULT_DB_CHARACTER_SYNCH_THREADS]=DB_CHARACTER_SYNCH_THREADS
|
|
[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
|
|
)
|
|
|
|
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_FALLBACK_LAN_IP="192.168.1.100"
|
|
readonly DEFAULT_DOMAIN_PLACEHOLDER="your-domain.com"
|
|
|
|
# Module preset names (not in template)
|
|
readonly DEFAULT_PRESET_SUGGESTED="suggested-modules"
|
|
readonly DEFAULT_PRESET_PLAYERBOTS="suggested-modules-playerbots"
|
|
|
|
# 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"
|