variable cleanup

This commit is contained in:
uprightbass360
2025-10-26 04:49:25 -04:00
parent 323186cce2
commit f46b88bd93
4 changed files with 492 additions and 300 deletions

110
setup.sh
View File

@@ -58,12 +58,14 @@ readonly DEFAULT_CUSTOM_UID="1000"
readonly DEFAULT_CUSTOM_GID="1000"
# Static values
readonly DEFAULT_LOCAL_ADDRESS="127.0.0.1"
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="3"
readonly DEFAULT_BACKUP_HOURS="6"
readonly DEFAULT_BACKUP_TIME="09"
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"
@@ -78,6 +80,8 @@ readonly DEFAULT_WORLD_IMAGE_PLAYERBOTS="$(get_template_value "AC_WORLDSERVER_IM
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")"
@@ -87,6 +91,11 @@ 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")"
@@ -106,6 +115,9 @@ readonly DEFAULT_MYSQL_INNODB_BUFFER_POOL_SIZE="$(get_template_value "MYSQL_INNO
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")"
@@ -144,6 +156,25 @@ readonly DEFAULT_ELUNA_BYTECODE_CACHE="$(get_template_value "AC_ELUNA_BYTECODE_C
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")"
# Route detection IP (not in template)
readonly ROUTE_DETECTION_IP="1.1.1.1"
@@ -252,6 +283,7 @@ KNOWN_MODULE_VARS=(
MODULE_AUTO_REVIVE
MODULE_GAIN_HONOR_GUARD
MODULE_ARAC
MODULE_ELUNA
MODULE_TIME_IS_TIME
MODULE_POCKET_PORTAL
MODULE_RANDOM_ENCHANTS
@@ -878,7 +910,7 @@ fi
MODULE_1V1_ARENA=0 MODULE_PHASED_DUELS=0 MODULE_BREAKING_NEWS=0 MODULE_BOSS_ANNOUNCER=0 MODULE_ACCOUNT_ACHIEVEMENTS=0 \
MODULE_AUTO_REVIVE=0 MODULE_GAIN_HONOR_GUARD=0 MODULE_TIME_IS_TIME=0 MODULE_POCKET_PORTAL=0 \
MODULE_RANDOM_ENCHANTS=0 MODULE_SOLOCRAFT=0 MODULE_PVP_TITLES=0 MODULE_NPC_BEASTMASTER=0 MODULE_NPC_ENCHANTER=0 \
MODULE_INSTANCE_RESET=0 MODULE_LEVEL_GRANT=0 MODULE_ASSISTANT=0 MODULE_REAGENT_BANK=0 MODULE_BLACK_MARKET_AUCTION_HOUSE=0 MODULE_ARAC=0 \
MODULE_INSTANCE_RESET=0 MODULE_LEVEL_GRANT=0 MODULE_ASSISTANT=0 MODULE_REAGENT_BANK=0 MODULE_BLACK_MARKET_AUCTION_HOUSE=0 MODULE_ARAC=0 MODULE_ELUNA=0 \
MODULE_CHALLENGE_MODES=0 MODULE_OLLAMA_CHAT=0 MODULE_SKELETON_MODULE=0 MODULE_BG_SLAVERYVALLEY=0 MODULE_ELUNA_TS=0 \
MODULE_PLAYER_BOT_LEVEL_BRACKETS=0 MODULE_STATBOOSTER=0 MODULE_DUNGEON_RESPAWN=0 MODULE_AZEROTHSHARD=0 MODULE_WORGOBLIN=0
local AC_AUTHSERVER_IMAGE_PLAYERBOTS_VALUE="$DEFAULT_AUTH_IMAGE_PLAYERBOTS"
@@ -1225,6 +1257,38 @@ fi
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}
CLIENT_DATA_VOLUME=${CLIENT_DATA_VOLUME:-$DEFAULT_CLIENT_DATA_VOLUME}
BACKUP_HEALTHCHECK_MAX_MINUTES=${BACKUP_HEALTHCHECK_MAX_MINUTES:-$DEFAULT_BACKUP_HEALTHCHECK_MAX_MINUTES}
BACKUP_HEALTHCHECK_GRACE_SECONDS=${BACKUP_HEALTHCHECK_GRACE_SECONDS:-$DEFAULT_BACKUP_HEALTHCHECK_GRACE_SECONDS}
DB_WAIT_RETRIES=${DB_WAIT_RETRIES:-$DEFAULT_DB_WAIT_RETRIES}
DB_WAIT_SLEEP=${DB_WAIT_SLEEP:-$DEFAULT_DB_WAIT_SLEEP}
MYSQL_HEALTHCHECK_INTERVAL=${MYSQL_HEALTHCHECK_INTERVAL:-$DEFAULT_MYSQL_HEALTHCHECK_INTERVAL}
MYSQL_HEALTHCHECK_TIMEOUT=${MYSQL_HEALTHCHECK_TIMEOUT:-$DEFAULT_MYSQL_HEALTHCHECK_TIMEOUT}
MYSQL_HEALTHCHECK_RETRIES=${MYSQL_HEALTHCHECK_RETRIES:-$DEFAULT_MYSQL_HEALTHCHECK_RETRIES}
MYSQL_HEALTHCHECK_START_PERIOD=${MYSQL_HEALTHCHECK_START_PERIOD:-$DEFAULT_MYSQL_HEALTHCHECK_START_PERIOD}
AUTH_HEALTHCHECK_INTERVAL=${AUTH_HEALTHCHECK_INTERVAL:-$DEFAULT_AUTH_HEALTHCHECK_INTERVAL}
AUTH_HEALTHCHECK_TIMEOUT=${AUTH_HEALTHCHECK_TIMEOUT:-$DEFAULT_AUTH_HEALTHCHECK_TIMEOUT}
AUTH_HEALTHCHECK_RETRIES=${AUTH_HEALTHCHECK_RETRIES:-$DEFAULT_AUTH_HEALTHCHECK_RETRIES}
AUTH_HEALTHCHECK_START_PERIOD=${AUTH_HEALTHCHECK_START_PERIOD:-$DEFAULT_AUTH_HEALTHCHECK_START_PERIOD}
WORLD_HEALTHCHECK_INTERVAL=${WORLD_HEALTHCHECK_INTERVAL:-$DEFAULT_WORLD_HEALTHCHECK_INTERVAL}
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}
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
cat > "$ENV_OUT" <<EOF
# Generated by ac-compose/setup.sh
@@ -1233,6 +1297,7 @@ COMPOSE_PROJECT_NAME=$DEFAULT_COMPOSE_PROJECT_NAME
STORAGE_PATH=$STORAGE_PATH
STORAGE_PATH_LOCAL=$LOCAL_STORAGE_ROOT
HOST_BACKUP_PATH=$HOST_BACKUP_PATH_VALUE
HOST_ZONEINFO_PATH=${HOST_ZONEINFO_PATH:-$DEFAULT_HOST_ZONEINFO_PATH}
TZ=$DEFAULT_TZ
@@ -1251,6 +1316,9 @@ MYSQL_INNODB_BUFFER_POOL_SIZE=$DEFAULT_MYSQL_INNODB_BUFFER_POOL_SIZE
MYSQL_INNODB_LOG_FILE_SIZE=$DEFAULT_MYSQL_INNODB_LOG_FILE_SIZE
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}
MYSQL_HOST=$DEFAULT_MYSQL_HOST
DB_WAIT_RETRIES=$DB_WAIT_RETRIES
DB_WAIT_SLEEP=$DB_WAIT_SLEEP
DB_AUTH_NAME=$DEFAULT_DB_AUTH_NAME
DB_WORLD_NAME=$DEFAULT_DB_WORLD_NAME
DB_CHARACTERS_NAME=$DEFAULT_DB_CHARACTERS_NAME
@@ -1271,6 +1339,13 @@ AC_CLIENT_DATA_IMAGE_PLAYERBOTS=$DEFAULT_CLIENT_DATA_IMAGE_PLAYERBOTS
CLIENT_DATA_CACHE_PATH=$CLIENT_DATA_CACHE_PATH_VALUE
CLIENT_DATA_VOLUME=${CLIENT_DATA_VOLUME:-$DEFAULT_CLIENT_DATA_VOLUME}
# Containers
CONTAINER_DB_IMPORT=$DEFAULT_CONTAINER_DB_IMPORT
CONTAINER_DB_INIT=$DEFAULT_CONTAINER_DB_INIT
CONTAINER_BACKUP=$DEFAULT_CONTAINER_BACKUP
CONTAINER_MODULES=$DEFAULT_CONTAINER_MODULES
CONTAINER_POST_INSTALL=$DEFAULT_CONTAINER_POST_INSTALL
# Ports
AUTH_EXTERNAL_PORT=$AUTH_EXTERNAL_PORT
AUTH_PORT=$DEFAULT_AUTH_INTERNAL_PORT
@@ -1287,6 +1362,12 @@ REALM_PORT=$REALM_PORT
BACKUP_RETENTION_DAYS=$BACKUP_RETENTION_DAYS
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
@@ -1311,6 +1392,7 @@ MODULE_ACCOUNT_ACHIEVEMENTS=$MODULE_ACCOUNT_ACHIEVEMENTS
MODULE_AUTO_REVIVE=$MODULE_AUTO_REVIVE
MODULE_GAIN_HONOR_GUARD=$MODULE_GAIN_HONOR_GUARD
MODULE_ARAC=$MODULE_ARAC
MODULE_ELUNA=$MODULE_ELUNA
MODULE_TIME_IS_TIME=$MODULE_TIME_IS_TIME
MODULE_POCKET_PORTAL=$MODULE_POCKET_PORTAL
MODULE_RANDOM_ENCHANTS=$MODULE_RANDOM_ENCHANTS
@@ -1369,10 +1451,28 @@ KEIRA3_EXTERNAL_PORT=$DEFAULT_KEIRA3_EXTERNAL_PORT
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
# Networking
NETWORK_NAME=$DEFAULT_NETWORK_NAME
NETWORK_SUBNET=$DEFAULT_NETWORK_SUBNET
NETWORK_GATEWAY=$DEFAULT_NETWORK_GATEWAY
# Helper images
ALPINE_GIT_IMAGE=$DEFAULT_ALPINE_GIT_IMAGE
ALPINE_IMAGE=$DEFAULT_ALPINE_IMAGE
EOF
local storage_abs_path="$STORAGE_PATH"