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:
157
.env.template
157
.env.template
@@ -2,7 +2,9 @@
|
||||
# Docker Compose will auto-load .env in the same folder as docker-compose.yml.
|
||||
# Template for acore-compose profiles-based compose
|
||||
|
||||
# =====================
|
||||
# Project name
|
||||
# =====================
|
||||
COMPOSE_PROJECT_NAME=acore-compose
|
||||
|
||||
# =====================
|
||||
@@ -10,10 +12,78 @@ COMPOSE_PROJECT_NAME=acore-compose
|
||||
# =====================
|
||||
STORAGE_PATH=./storage
|
||||
STORAGE_PATH_LOCAL=./local-storage
|
||||
HOST_BACKUP_PATH=./storage/backups
|
||||
BACKUP_PATH=${STORAGE_PATH}/backups
|
||||
HOST_ZONEINFO_PATH=/usr/share/zoneinfo
|
||||
TZ=UTC
|
||||
|
||||
# =====================
|
||||
# Permissions & IDs
|
||||
# =====================
|
||||
CONTAINER_USER=0:0
|
||||
PERMISSION_LOCAL_USER=0:0
|
||||
PERMISSION_NFS_USER=1001:1000
|
||||
DEFAULT_CUSTOM_UID=1000
|
||||
DEFAULT_CUSTOM_GID=1000
|
||||
|
||||
# =====================
|
||||
# Shared Storage Presets
|
||||
# =====================
|
||||
NFS_STORAGE_PATH=/nfs/azerothcore
|
||||
MOUNT_STORAGE_PATH=/mnt/azerothcore-data
|
||||
|
||||
# =====================
|
||||
# Container identifiers
|
||||
# =====================
|
||||
CONTAINER_DB_IMPORT=ac-db-import
|
||||
CONTAINER_DB_INIT=ac-db-init
|
||||
CONTAINER_BACKUP=ac-backup
|
||||
CONTAINER_MODULES=ac-modules
|
||||
CONTAINER_POST_INSTALL=ac-post-install
|
||||
|
||||
# =====================
|
||||
# Images
|
||||
# =====================
|
||||
AC_DB_IMPORT_IMAGE=acore/ac-wotlk-db-import:14.0.0-dev
|
||||
# Services (Standard)
|
||||
AC_AUTHSERVER_IMAGE=acore/ac-wotlk-authserver:14.0.0-dev
|
||||
AC_WORLDSERVER_IMAGE=acore/ac-wotlk-worldserver:14.0.0-dev
|
||||
# Services (Playerbots)
|
||||
AC_AUTHSERVER_IMAGE_PLAYERBOTS=uprightbass360/azerothcore-wotlk-playerbots:authserver-Playerbot
|
||||
AC_WORLDSERVER_IMAGE_PLAYERBOTS=uprightbass360/azerothcore-wotlk-playerbots:worldserver-Playerbot
|
||||
# Services (Module Build Tags)
|
||||
# Images used during module compilation and tagging
|
||||
AC_AUTHSERVER_IMAGE_MODULES=uprightbass360/azerothcore-wotlk-playerbots:authserver-modules-latest
|
||||
AC_WORLDSERVER_IMAGE_MODULES=uprightbass360/azerothcore-wotlk-playerbots:worldserver-modules-latest
|
||||
# Client Data
|
||||
AC_CLIENT_DATA_IMAGE=acore/ac-wotlk-client-data:14.0.0-dev
|
||||
AC_CLIENT_DATA_IMAGE_PLAYERBOTS=uprightbass360/azerothcore-wotlk-playerbots:client-data-Playerbot
|
||||
# Helper images
|
||||
ALPINE_GIT_IMAGE=alpine/git:latest
|
||||
ALPINE_IMAGE=alpine:latest
|
||||
|
||||
# =====================
|
||||
# Ports
|
||||
# =====================
|
||||
AUTH_EXTERNAL_PORT=3784
|
||||
AUTH_PORT=3724
|
||||
WORLD_EXTERNAL_PORT=8215
|
||||
WORLD_PORT=8085
|
||||
SOAP_EXTERNAL_PORT=7778
|
||||
SOAP_PORT=7878
|
||||
|
||||
# =====================
|
||||
# Networking
|
||||
# =====================
|
||||
NETWORK_NAME=azerothcore
|
||||
NETWORK_SUBNET=172.20.0.0/16
|
||||
NETWORK_GATEWAY=172.20.0.1
|
||||
|
||||
# =====================
|
||||
# Server address / realm
|
||||
# =====================
|
||||
SERVER_ADDRESS=127.0.0.1
|
||||
REALM_PORT=8215
|
||||
|
||||
# =====================
|
||||
# MySQL / Database Layer
|
||||
# =====================
|
||||
@@ -35,66 +105,13 @@ MYSQL_RUNTIME_TMPFS_SIZE=8G
|
||||
DB_WAIT_RETRIES=60
|
||||
DB_WAIT_SLEEP=10
|
||||
|
||||
# =====================
|
||||
# DB names
|
||||
# =====================
|
||||
DB_AUTH_NAME=acore_auth
|
||||
DB_WORLD_NAME=acore_world
|
||||
DB_CHARACTERS_NAME=acore_characters
|
||||
DB_PLAYERBOTS_NAME=acore_playerbots
|
||||
|
||||
# Container identifiers
|
||||
CONTAINER_DB_IMPORT=ac-db-import
|
||||
CONTAINER_DB_INIT=ac-db-init
|
||||
CONTAINER_BACKUP=ac-backup
|
||||
CONTAINER_MODULES=ac-modules
|
||||
CONTAINER_POST_INSTALL=ac-post-install
|
||||
|
||||
# DB import image
|
||||
AC_DB_IMPORT_IMAGE=acore/ac-wotlk-db-import:14.0.0-dev
|
||||
|
||||
# =====================
|
||||
# Services (Standard)
|
||||
# =====================
|
||||
AC_AUTHSERVER_IMAGE=acore/ac-wotlk-authserver:14.0.0-dev
|
||||
AC_WORLDSERVER_IMAGE=acore/ac-wotlk-worldserver:14.0.0-dev
|
||||
|
||||
# =====================
|
||||
# Services (Playerbots)
|
||||
# =====================
|
||||
AC_AUTHSERVER_IMAGE_PLAYERBOTS=uprightbass360/azerothcore-wotlk-playerbots:authserver-Playerbot
|
||||
AC_WORLDSERVER_IMAGE_PLAYERBOTS=uprightbass360/azerothcore-wotlk-playerbots:worldserver-Playerbot
|
||||
|
||||
# =====================
|
||||
# Services (Module Build Tags)
|
||||
# =====================
|
||||
# Images used during module compilation and tagging
|
||||
AC_AUTHSERVER_IMAGE_MODULES=uprightbass360/azerothcore-wotlk-playerbots:authserver-modules-latest
|
||||
AC_WORLDSERVER_IMAGE_MODULES=uprightbass360/azerothcore-wotlk-playerbots:worldserver-modules-latest
|
||||
|
||||
# =====================
|
||||
# Client Data
|
||||
# =====================
|
||||
AC_CLIENT_DATA_IMAGE=acore/ac-wotlk-client-data:14.0.0-dev
|
||||
AC_CLIENT_DATA_IMAGE_PLAYERBOTS=uprightbass360/azerothcore-wotlk-playerbots:client-data-Playerbot
|
||||
CLIENT_DATA_VERSION=v17
|
||||
CLIENT_DATA_CACHE_PATH=${STORAGE_PATH_LOCAL:-./local-storage}/client-data-cache
|
||||
CLIENT_DATA_VOLUME=ac-client-data
|
||||
|
||||
# =====================
|
||||
# Ports
|
||||
# =====================
|
||||
AUTH_EXTERNAL_PORT=3784
|
||||
AUTH_PORT=3724
|
||||
WORLD_EXTERNAL_PORT=8215
|
||||
WORLD_PORT=8085
|
||||
SOAP_EXTERNAL_PORT=7778
|
||||
SOAP_PORT=7878
|
||||
|
||||
# =====================
|
||||
# Server address / realm
|
||||
# =====================
|
||||
SERVER_ADDRESS=127.0.0.1
|
||||
REALM_PORT=8215
|
||||
|
||||
# =====================
|
||||
# Backups
|
||||
# =====================
|
||||
@@ -114,6 +131,13 @@ BACKUP_HEALTHCHECK_START_PERIOD=120s
|
||||
PLAYERBOT_ENABLED=0
|
||||
PLAYERBOT_MAX_BOTS=40
|
||||
|
||||
# =====================
|
||||
# Client Data Settings
|
||||
# =====================
|
||||
CLIENT_DATA_VERSION=v17
|
||||
CLIENT_DATA_CACHE_PATH=${STORAGE_PATH_LOCAL}/client-data-cache
|
||||
CLIENT_DATA_VOLUME=ac-client-data
|
||||
|
||||
# =====================
|
||||
# Module toggles (0/1)
|
||||
# =====================
|
||||
@@ -178,7 +202,7 @@ MODULE_BLACK_MARKET_AUCTION_HOUSE=0
|
||||
# =====================
|
||||
AUTO_REBUILD_ON_DEPLOY=0
|
||||
# Default AzerothCore source checkout used for module rebuilds
|
||||
MODULES_REBUILD_SOURCE_PATH=${STORAGE_PATH_LOCAL:-./local-storage}/source/azerothcore
|
||||
MODULES_REBUILD_SOURCE_PATH=${STORAGE_PATH_LOCAL}/source/azerothcore
|
||||
|
||||
# =====================
|
||||
# Eluna runtime (worldserver.conf overrides)
|
||||
@@ -222,25 +246,6 @@ PMA_ABSOLUTE_URI=
|
||||
PMA_UPLOAD_LIMIT=300M
|
||||
PMA_MEMORY_LIMIT=512M
|
||||
PMA_MAX_EXECUTION_TIME=600
|
||||
|
||||
KEIRA3_EXTERNAL_PORT=4201
|
||||
KEIRA_DATABASE_HOST=ac-mysql
|
||||
KEIRA_DATABASE_PORT=3306
|
||||
|
||||
# =====================
|
||||
# Networking
|
||||
# =====================
|
||||
NETWORK_NAME=azerothcore
|
||||
NETWORK_SUBNET=172.20.0.0/16
|
||||
NETWORK_GATEWAY=172.20.0.1
|
||||
|
||||
# =====================
|
||||
# Container user mapping
|
||||
# =====================
|
||||
CONTAINER_USER=0:0
|
||||
|
||||
# =====================
|
||||
# Helper images
|
||||
# =====================
|
||||
ALPINE_GIT_IMAGE=alpine/git:latest
|
||||
ALPINE_IMAGE=alpine:latest
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
# Export auth and character databases to ExportBackup_<timestamp>/
|
||||
set -euo pipefail
|
||||
|
||||
MYSQL_PW="${MYSQL_ROOT_PASSWORD:-azerothcore123}"
|
||||
DB_AUTH="${DB_AUTH_NAME:-acore_auth}"
|
||||
DB_CHAR="${DB_CHARACTERS_NAME:-acore_characters}"
|
||||
MYSQL_PW="${MYSQL_ROOT_PASSWORD}"
|
||||
DB_AUTH="${DB_AUTH_NAME}"
|
||||
DB_CHAR="${DB_CHARACTERS_NAME}"
|
||||
|
||||
usage(){
|
||||
cat <<EOF
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
set -euo pipefail
|
||||
|
||||
BACKUP_DIR="${1:-ImportBackup}"
|
||||
MYSQL_PW="${MYSQL_ROOT_PASSWORD:-azerothcore123}"
|
||||
DB_AUTH="${DB_AUTH_NAME:-acore_auth}"
|
||||
DB_CHAR="${DB_CHARACTERS_NAME:-acore_characters}"
|
||||
DB_WORLD="${DB_WORLD_NAME:-acore_world}"
|
||||
MYSQL_PW="${MYSQL_ROOT_PASSWORD}"
|
||||
DB_AUTH="${DB_AUTH_NAME}"
|
||||
DB_CHAR="${DB_CHARACTERS_NAME}"
|
||||
DB_WORLD="${DB_WORLD_NAME}"
|
||||
|
||||
COLOR_RED='\033[0;31m'
|
||||
COLOR_GREEN='\033[0;32m'
|
||||
|
||||
@@ -21,7 +21,7 @@ services:
|
||||
- "${MYSQL_EXTERNAL_PORT}:${MYSQL_PORT}"
|
||||
volumes:
|
||||
- ${STORAGE_PATH}/mysql-data:/var/lib/mysql-persistent
|
||||
- ${HOST_BACKUP_PATH}:/backups
|
||||
- ${BACKUP_PATH}:/backups
|
||||
- ${HOST_ZONEINFO_PATH}:/usr/share/zoneinfo:ro
|
||||
tmpfs:
|
||||
- /var/lib/mysql-runtime:size=${MYSQL_RUNTIME_TMPFS_SIZE}
|
||||
@@ -99,7 +99,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
volumes:
|
||||
- ${STORAGE_PATH}/mysql-data:/var/lib/mysql-persistent
|
||||
- ${HOST_BACKUP_PATH}:/backups
|
||||
- ${BACKUP_PATH}:/backups
|
||||
networks:
|
||||
- azerothcore
|
||||
environment:
|
||||
@@ -154,7 +154,7 @@ services:
|
||||
DB_CHARACTERS_NAME: ${DB_CHARACTERS_NAME}
|
||||
TZ: ${TZ}
|
||||
volumes:
|
||||
- ${HOST_BACKUP_PATH}:/backups
|
||||
- ${BACKUP_PATH}:/backups
|
||||
- ./scripts:/tmp/scripts:ro
|
||||
working_dir: /tmp
|
||||
command:
|
||||
@@ -575,6 +575,16 @@ services:
|
||||
- MODULE_ASSISTANT=${MODULE_ASSISTANT}
|
||||
- MODULE_REAGENT_BANK=${MODULE_REAGENT_BANK}
|
||||
- MODULE_BLACK_MARKET_AUCTION_HOUSE=${MODULE_BLACK_MARKET_AUCTION_HOUSE}
|
||||
- MODULE_CHALLENGE_MODES=${MODULE_CHALLENGE_MODES}
|
||||
- MODULE_OLLAMA_CHAT=${MODULE_OLLAMA_CHAT}
|
||||
- MODULE_PLAYER_BOT_LEVEL_BRACKETS=${MODULE_PLAYER_BOT_LEVEL_BRACKETS}
|
||||
- MODULE_STATBOOSTER=${MODULE_STATBOOSTER}
|
||||
- MODULE_DUNGEON_RESPAWN=${MODULE_DUNGEON_RESPAWN}
|
||||
- MODULE_SKELETON_MODULE=${MODULE_SKELETON_MODULE}
|
||||
- MODULE_BG_SLAVERYVALLEY=${MODULE_BG_SLAVERYVALLEY}
|
||||
- MODULE_AZEROTHSHARD=${MODULE_AZEROTHSHARD}
|
||||
- MODULE_WORGOBLIN=${MODULE_WORGOBLIN}
|
||||
- MODULE_ELUNA_TS=${MODULE_ELUNA_TS}
|
||||
- CONTAINER_MYSQL=${CONTAINER_MYSQL}
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- DB_AUTH_NAME=${DB_AUTH_NAME}
|
||||
|
||||
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"
|
||||
|
||||
|
||||
29
status.sh
29
status.sh
@@ -42,7 +42,7 @@ docker info >/dev/null 2>&1 || { echo "Docker daemon unavailable" >&2; exit 1; }
|
||||
read_env(){
|
||||
local key="$1" value=""
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
value="$(grep -E "^${key}=" "$ENV_FILE" 2>/dev/null | tail -n1 | cut -d'=' -f2- | tr -d '\r')"
|
||||
value="$(grep -E "^${key}=" "$ENV_FILE" 2>/dev/null | tail -n1 | cut -d'=' -f2- | tr -d '\r' | sed 's/[[:space:]]*#.*//' | sed 's/[[:space:]]*$//')"
|
||||
fi
|
||||
echo "$value"
|
||||
}
|
||||
@@ -172,7 +172,7 @@ print_service(){
|
||||
fi
|
||||
}
|
||||
|
||||
module_summary(){
|
||||
module_summary_list(){
|
||||
if [ ! -f "$ENV_FILE" ]; then
|
||||
echo "MODULES: (env not found)"
|
||||
return
|
||||
@@ -180,23 +180,17 @@ module_summary(){
|
||||
local module_vars
|
||||
module_vars="$(grep -E '^MODULE_[A-Z_]+=1' "$ENV_FILE" 2>/dev/null | cut -d'=' -f1)"
|
||||
if [ -n "$module_vars" ]; then
|
||||
local arr=()
|
||||
echo "MODULES:"
|
||||
while IFS= read -r mod; do
|
||||
[ -z "$mod" ] && continue
|
||||
local pretty="${mod#MODULE_}"
|
||||
pretty="$(echo "$pretty" | tr '[:upper:]' '[:lower:]' | tr '_' ' ')"
|
||||
arr+=("$pretty")
|
||||
pretty="$(echo "$pretty" | tr '[:upper:]' '[:lower:]' | tr '_' ' ' | sed 's/\b\w/\U&/g')"
|
||||
printf " • %s\n" "$pretty"
|
||||
done <<< "$module_vars"
|
||||
local joined=""
|
||||
for item in "${arr[@]}"; do
|
||||
joined+="$item, "
|
||||
done
|
||||
joined="${joined%, }"
|
||||
echo "MODULES: $joined"
|
||||
else
|
||||
echo "MODULES: none"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
if container_running "ac-worldserver"; then
|
||||
local playerbot="disabled"
|
||||
local module_playerbots
|
||||
@@ -209,7 +203,7 @@ module_summary(){
|
||||
fi
|
||||
local eluna="disabled"
|
||||
[ "$ELUNA_ENABLED" = "1" ] && eluna="running"
|
||||
echo "RUNTIME: playerbots $playerbot | eluna $eluna"
|
||||
# echo "RUNTIME: playerbots $playerbot | eluna $eluna"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -290,8 +284,9 @@ show_realm_status_header(){
|
||||
}
|
||||
|
||||
render_snapshot(){
|
||||
show_realm_status_header
|
||||
printf "\nTIME %s PROJECT %s\n\n" "$(date '+%Y-%m-%d %H:%M:%S')" "$PROJECT_NAME"
|
||||
#show_realm_status_header
|
||||
printf "TIME %s PROJECT %s\n\n" "$(date '+%Y-%m-%d %H:%M:%S')" "$PROJECT_NAME"
|
||||
user_stats
|
||||
printf "%-20s %-15s %-28s %s\n" "SERVICE" "CONTAINER" "STATE" "IMAGE"
|
||||
printf "%-20s %-15s %-28s %s\n" "--------------------" "---------------" "----------------------------" "------------------------------"
|
||||
print_service ac-mysql "MySQL"
|
||||
@@ -306,10 +301,10 @@ render_snapshot(){
|
||||
print_service ac-phpmyadmin "phpMyAdmin"
|
||||
print_service ac-keira3 "Keira3"
|
||||
echo ""
|
||||
module_summary
|
||||
user_stats
|
||||
module_summary_list
|
||||
echo ""
|
||||
echo "$(ports_summary)"
|
||||
echo ""
|
||||
echo "$(network_summary)"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user