deployment updates

This commit is contained in:
Deckard
2025-10-19 03:39:51 -04:00
parent 3426acae6d
commit b62a55c47b
12 changed files with 777 additions and 185 deletions

View File

@@ -36,6 +36,18 @@ ask_yn(){ local p="$1"; local d="$2"; local v; while true; do
if [ "$d" = "y" ]; then read -p "$(echo -e "${YELLOW}🔧 ${p} [Y/n]: ${NC}")" v; v=${v:-y}; else read -p "$(echo -e "${YELLOW}🔧 ${p} [y/N]: ${NC}")" v; v=${v:-n}; fi
case "$v" in [Yy]*) echo 1; return 0;; [Nn]*) echo 0; return 0;; esac; say ERROR "Please answer y or n"; done; }
show_wow_header(){
echo -e "\n${BLUE} ⚔️ AZEROTHCORE DEPLOYMENT SYSTEM ⚔️${NC}"
echo -e "${BLUE} ═══════════════════════════════════════${NC}"
echo -e "${BLUE} 🏰 Build Your Own WoW Server 🏰${NC}\n"
}
show_realm_configured(){
echo -e "\n${GREEN}⚔️ Your realm configuration has been forged! ⚔️${NC}"
echo -e "${GREEN}🏰 Ready to deploy your World of Warcraft server${NC}"
echo -e "${GREEN}🗡️ May your realm bring epic adventures!${NC}\n"
}
main(){
# Basic arg handling for help
if [[ $# -gt 0 ]]; then
@@ -63,14 +75,14 @@ EOF
;;
esac
fi
say HEADER "AZEROTHCORE PROFILES SETUP (.env generator)"
show_wow_header
say INFO "This will create ac-compose/.env for compose profiles."
# Deployment type
say HEADER "DEPLOYMENT TYPE"
echo "1) Local Development (127.0.0.1, local storage)"
echo "2) LAN Server (local network IP)"
echo "3) Public Server (domain or public IP)"
echo "1) 🏠 Local Development (127.0.0.1, local storage)"
echo "2) 🌐 LAN Server (local network IP)"
echo "3) ☁️ Public Server (domain or public IP)"
local DEPLOYMENT_TYPE
while true; do
read -p "$(echo -e "${YELLOW}🔧 Select deployment type [1-3]: ${NC}")" x
@@ -84,9 +96,9 @@ EOF
# Permission scheme
say HEADER "PERMISSION SCHEME"
echo "1) Local Dev (0:0)"
echo "2) NFS Server (1001:1000)"
echo "3) Custom"
echo "1) 🏠 Local Dev (0:0)"
echo "2) 🗂️ NFS Server (1001:1000)"
echo "3) ⚙️ Custom"
local CONTAINER_USER
while true; do
read -p "$(echo -e "${YELLOW}🔧 Select permission scheme [1-3]: ${NC}")" x
@@ -126,9 +138,9 @@ EOF
if [ "$DEPLOYMENT_TYPE" = "local" ]; then
STORAGE_PATH=./storage
else
echo "1) ./storage (local)"
echo "2) /nfs/azerothcore (NFS)"
echo "3) Custom"
echo "1) 💾 ./storage (local)"
echo "2) 🌐 /nfs/azerothcore (NFS)"
echo "3) 📁 Custom"
while true; do
read -p "$(echo -e "${YELLOW}🔧 Select storage option [1-3]: ${NC}")" s
case "$s" in
@@ -149,10 +161,10 @@ EOF
# Module config
say HEADER "MODULE PRESET"
echo "1) Suggested Modules"
echo "2) Playerbots + Suggested modules"
echo "3) Manual selection"
echo "4) No modules"
echo "1) Suggested Modules"
echo "2) 🤖 Playerbots + Suggested modules"
echo "3) ⚙️ Manual selection"
echo "4) 🚫 No modules"
local MODE; while true; do
read -p "$(echo -e "${YELLOW}🔧 Select module configuration [1-4]: ${NC}")" MODE
case "$MODE" in 1|2|3|4) break;; *) say ERROR "Please select 1, 2, 3, or 4";; esac
@@ -254,12 +266,8 @@ EOF
AUTO_REBUILD_ON_DEPLOY=$(ask_yn "Enable automatic rebuild during future deploys?" n)
if [ "$RUN_REBUILD_NOW" = "1" ] || [ "$AUTO_REBUILD_ON_DEPLOY" = "1" ]; then
if [ -z "$MODULES_REBUILD_SOURCE_PATH_VALUE" ]; then
read -p "$(echo -e "${YELLOW}🔧 Path to AzerothCore source compose (optional): ${NC}")" MODULES_REBUILD_SOURCE_PATH_VALUE
fi
if [ -z "$MODULES_REBUILD_SOURCE_PATH_VALUE" ]; then
say WARNING "No source path provided; skipping rebuild automation."
RUN_REBUILD_NOW=0
AUTO_REBUILD_ON_DEPLOY=0
MODULES_REBUILD_SOURCE_PATH_VALUE="./source/azerothcore"
say INFO "Using default source path: ${MODULES_REBUILD_SOURCE_PATH_VALUE}"
fi
fi
fi
@@ -271,6 +279,12 @@ EOF
local cont; cont=$(ask_yn "Continue and overwrite?" n); [ "$cont" = "1" ] || { say ERROR "Aborted"; exit 1; }
fi
if [ -z "$MODULES_REBUILD_SOURCE_PATH_VALUE" ]; then
MODULES_REBUILD_SOURCE_PATH_VALUE="./source/azerothcore"
fi
DB_PLAYERBOTS_NAME=${DB_PLAYERBOTS_NAME:-acore_playerbots}
cat > "$ENV_OUT" <<EOF
# Generated by ac-compose/setup.sh
@@ -295,6 +309,7 @@ MYSQL_INNODB_LOG_FILE_SIZE=64M
DB_AUTH_NAME=acore_auth
DB_WORLD_NAME=acore_world
DB_CHARACTERS_NAME=acore_characters
DB_PLAYERBOTS_NAME=$DB_PLAYERBOTS_NAME
AC_DB_IMPORT_IMAGE=acore/ac-wotlk-db-import:14.0.0-dev
# Services (images)
@@ -402,6 +417,7 @@ NETWORK_GATEWAY=172.20.0.1
EOF
say SUCCESS ".env written to $ENV_OUT"
show_realm_configured
if [ "$RUN_REBUILD_NOW" = "1" ]; then
echo ""
@@ -410,20 +426,20 @@ EOF
if ./scripts/rebuild-with-modules.sh --yes --source "$MODULES_REBUILD_SOURCE_PATH_VALUE"; then
say SUCCESS "Module rebuild completed"
else
warn "Module rebuild failed; run ./scripts/rebuild-with-modules.sh manually once issues are resolved."
say WARNING "Module rebuild failed; run ./scripts/rebuild-with-modules.sh manually once issues are resolved."
fi
else
warn "Rebuild path was not provided; skipping automatic rebuild."
say WARNING "Rebuild path was not provided; skipping automatic rebuild."
fi
fi
say INFO "Run with profiles (examples):"
say INFO "Ready to bring your realm online:"
if [ "$MODULE_PLAYERBOTS" = "1" ]; then
echo " docker compose -f compose.yml --profile db --profile services-playerbots --profile client-data-bots --profile modules --profile tools up -d"
echo " ./deploy.sh --profile modules --no-watch"
echo " 🚀 Quick deploy: ./deploy.sh"
echo " 🔧 Manual: docker compose --profile db --profile services-playerbots --profile client-data-bots --profile modules up -d"
else
echo " docker compose -f compose.yml --profile db --profile services-standard --profile client-data --profile modules --profile tools up -d"
echo " ./deploy.sh --profile modules --no-watch"
echo " 🚀 Quick deploy: ./deploy.sh"
echo " 🔧 Manual: docker compose --profile db --profile services-standard --profile client-data --profile modules up -d"
fi
}