diff --git a/.gitignore b/.gitignore index 7d2bdff..b8f5809 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ data/ backups/ local-data-tools/ storage/ +*custom.env diff --git a/docker-compose-azerothcore-database.env b/docker-compose-azerothcore-database.env index 8c43373..ca25991 100644 --- a/docker-compose-azerothcore-database.env +++ b/docker-compose-azerothcore-database.env @@ -45,8 +45,8 @@ DB_WAIT_SLEEP=10 # Database layer images # ============================================== # mod-playerbots compatible database import -AC_DB_IMPORT_IMAGE=uprightbass360/azerothcore-wotlk-playerbots:db-import-Playerbot -# AC_DB_IMPORT_IMAGE=acore/ac-wotlk-db-import:14.0.0-dev +AC_DB_IMPORT_IMAGE_DISABLED=uprightbass360/azerothcore-wotlk-playerbots:db-import-Playerbot +AC_DB_IMPORT_IMAGE=acore/ac-wotlk-db-import:14.0.0-dev MYSQL_IMAGE=mysql:8.0 ALPINE_IMAGE=alpine:latest diff --git a/docker-compose-azerothcore-modules.env b/docker-compose-azerothcore-modules.env index 45fd788..7da8153 100644 --- a/docker-compose-azerothcore-modules.env +++ b/docker-compose-azerothcore-modules.env @@ -93,46 +93,46 @@ NETWORK_NAME=azerothcore # CUSTOM MODULE SETTINGS # ============================================== # Playerbot settings -PLAYERBOT_ENABLED=1 +PLAYERBOT_ENABLED=0 PLAYERBOT_MAX_BOTS=40 # Module configuration -MODULE_PLAYERBOTS=1 -MODULE_AOE_LOOT=1 -MODULE_LEARN_SPELLS=1 -MODULE_FIREWORKS=1 -MODULE_INDIVIDUAL_PROGRESSION=1 +MODULE_PLAYERBOTS=0 +MODULE_AOE_LOOT=0 +MODULE_LEARN_SPELLS=0 +MODULE_FIREWORKS=0 +MODULE_INDIVIDUAL_PROGRESSION=0 # Quality of Life Modules -MODULE_AHBOT=1 -MODULE_AUTOBALANCE=1 -MODULE_TRANSMOG=1 -MODULE_NPC_BUFFER=1 +MODULE_AHBOT=0 +MODULE_AUTOBALANCE=0 +MODULE_TRANSMOG=0 +MODULE_NPC_BUFFER=0 # Gameplay Enhancement Modules -MODULE_DYNAMIC_XP=1 -MODULE_SOLO_LFG=1 -MODULE_1V1_ARENA=1 -MODULE_PHASED_DUELS=1 +MODULE_DYNAMIC_XP=0 +MODULE_SOLO_LFG=0 +MODULE_1V1_ARENA=0 +MODULE_PHASED_DUELS=0 # Server Management Modules -MODULE_BREAKING_NEWS=1 -MODULE_BOSS_ANNOUNCER=1 -MODULE_ACCOUNT_ACHIEVEMENTS=1 +MODULE_BREAKING_NEWS=0 +MODULE_BOSS_ANNOUNCER=0 +MODULE_ACCOUNT_ACHIEVEMENTS=0 # Additional Modules Found in Config -MODULE_AUTO_REVIVE=1 -MODULE_GAIN_HONOR_GUARD=1 -MODULE_ELUNA=1 -MODULE_TIME_IS_TIME=1 -MODULE_POCKET_PORTAL=1 -MODULE_RANDOM_ENCHANTS=1 -MODULE_SOLOCRAFT=1 -MODULE_PVP_TITLES=1 -MODULE_NPC_BEASTMASTER=1 -MODULE_NPC_ENCHANTER=1 -MODULE_INSTANCE_RESET=1 -MODULE_LEVEL_GRANT=1 +MODULE_AUTO_REVIVE=0 +MODULE_GAIN_HONOR_GUARD=0 +MODULE_ELUNA=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 # ============================================== # ADDITIONAL CONTAINER NAMES diff --git a/docker-compose-azerothcore-services.env b/docker-compose-azerothcore-services.env index 68394d8..3dc354f 100644 --- a/docker-compose-azerothcore-services.env +++ b/docker-compose-azerothcore-services.env @@ -49,10 +49,10 @@ DB_CHARACTERS_NAME=acore_characters # DOCKER IMAGES # ============================================== # Core service images - mod-playerbots compatible builds -AC_AUTHSERVER_IMAGE=uprightbass360/azerothcore-wotlk-playerbots:authserver-Playerbot -# AC_AUTHSERVER_IMAGE=acore/ac-wotlk-authserver:14.0.0-dev -AC_WORLDSERVER_IMAGE=uprightbass360/azerothcore-wotlk-playerbots:worldserver-Playerbot -# AC_WORLDSERVER_IMAGE=acore/ac-wotlk-worldserver:14.0.0-dev +AC_AUTHSERVER_IMAGE_DISABLED=uprightbass360/azerothcore-wotlk-playerbots:authserver-Playerbot +AC_AUTHSERVER_IMAGE=acore/ac-wotlk-authserver:14.0.0-dev +AC_WORLDSERVER_IMAGE_DISABLED=uprightbass360/azerothcore-wotlk-playerbots:worldserver-Playerbot +AC_WORLDSERVER_IMAGE=acore/ac-wotlk-worldserver:14.0.0-dev ALPINE_IMAGE=alpine:latest # Optional service images (from combined optional layer) @@ -60,8 +60,8 @@ AC_ELUNA_IMAGE=acore/eluna-ts:master ALPINE_GIT_IMAGE=alpine/git:latest # mod-playerbots compatible client data image -AC_CLIENT_DATA_IMAGE=uprightbass360/azerothcore-wotlk-playerbots:client-data-Playerbot -# AC_CLIENT_DATA_IMAGE=alpine:latest +AC_CLIENT_DATA_IMAGE_DISABLED=uprightbass360/azerothcore-wotlk-playerbots:client-data-Playerbot +AC_CLIENT_DATA_IMAGE=alpine:latest # ============================================== # IMAGE PULL POLICY @@ -110,22 +110,22 @@ PLAYERBOT_MAX_BOTS=40 # Module configuration - ENABLED MODULES # Selected modules for enhanced gameplay experience -MODULE_PLAYERBOTS=1 -MODULE_AOE_LOOT=1 -MODULE_LEARN_SPELLS=1 -MODULE_FIREWORKS=1 -MODULE_INDIVIDUAL_PROGRESSION=1 +MODULE_PLAYERBOTS=0 +MODULE_AOE_LOOT=0 +MODULE_LEARN_SPELLS=0 +MODULE_FIREWORKS=0 +MODULE_INDIVIDUAL_PROGRESSION=0 # Quality of Life Modules # NOTE: mod-ahbot has linking issues - undefined reference to 'Addmod_ahbotScripts()' MODULE_AHBOT=0 MODULE_AUTOBALANCE=0 -MODULE_TRANSMOG=1 +MODULE_TRANSMOG=0 MODULE_NPC_BUFFER=0 # Gameplay Enhancement Modules MODULE_DYNAMIC_XP=0 -MODULE_SOLO_LFG=1 +MODULE_SOLO_LFG=0 MODULE_1V1_ARENA=0 MODULE_PHASED_DUELS=0 @@ -137,20 +137,20 @@ MODULE_ACCOUNT_ACHIEVEMENTS=0 # Additional Modules Found in Config MODULE_AUTO_REVIVE=0 MODULE_GAIN_HONOR_GUARD=0 -MODULE_ELUNA=1 -MODULE_ARAC=1 +MODULE_ELUNA=0 +MODULE_ARAC=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=1 +MODULE_NPC_ENCHANTER=0 MODULE_INSTANCE_RESET=0 MODULE_LEVEL_GRANT=0 -MODULE_ASSISTANT=1 -MODULE_REAGENT_BANK=1 -MODULE_BLACK_MARKET_AUCTION_HOUSE=1 +MODULE_ASSISTANT=0 +MODULE_REAGENT_BANK=0 +MODULE_BLACK_MARKET_AUCTION_HOUSE=0 # ============================================== # ADDITIONAL CONTAINER NAMES diff --git a/docker-compose-azerothcore-tools.env b/docker-compose-azerothcore-tools.env index c5e66f0..86eb9d1 100644 --- a/docker-compose-azerothcore-tools.env +++ b/docker-compose-azerothcore-tools.env @@ -53,8 +53,8 @@ KEIRA_DATABASE_PORT=3306 # DOCKER IMAGES # ============================================== # mod-playerbots compatible tools container -AC_TOOLS_IMAGE=uprightbass360/azerothcore-wotlk-playerbots:tools-Playerbot -# AC_TOOLS_IMAGE=acore/ac-wotlk-tools:latest +AC_TOOLS_IMAGE_DISABLED=uprightbass360/azerothcore-wotlk-playerbots:tools-Playerbot +AC_TOOLS_IMAGE=acore/ac-wotlk-tools:latest # ============================================== # DEPLOYMENT CONFIGURATION diff --git a/scripts/setup-server.sh b/scripts/setup-server.sh index e10127f..d7439f7 100755 --- a/scripts/setup-server.sh +++ b/scripts/setup-server.sh @@ -504,6 +504,14 @@ main() { sed -i "s#BACKUP_DAILY_TIME=.*#BACKUP_DAILY_TIME=${BACKUP_DAILY_TIME}#" docker-compose-azerothcore-database-custom.env sed -i "s#TZ=.*#TZ=${TIMEZONE}#" docker-compose-azerothcore-database-custom.env + # Toggle database images based on module selection + if [ "$MODULE_SELECTION_MODE" != "none" ]; then + # Swap AC_DB_IMPORT_IMAGE to enable mod-playerbots database + sed -i 's/\(AC_DB_IMPORT_IMAGE\)=\(.*\)/\1_TEMP=\2/' docker-compose-azerothcore-database-custom.env + sed -i 's/\(AC_DB_IMPORT_IMAGE\)_DISABLED=\(.*\)/\1=\2/' docker-compose-azerothcore-database-custom.env + sed -i 's/\(AC_DB_IMPORT_IMAGE\)_TEMP=\(.*\)/\1_DISABLED=\2/' docker-compose-azerothcore-database-custom.env + fi + # Create custom services environment file print_status "INFO" "Creating custom services environment file..." cp docker-compose-azerothcore-services.env docker-compose-azerothcore-services-custom.env @@ -517,6 +525,22 @@ main() { sed -i "s#SERVER_ADDRESS=.*#SERVER_ADDRESS=${SERVER_ADDRESS}#" docker-compose-azerothcore-services-custom.env sed -i "s#REALM_PORT=.*#REALM_PORT=${REALM_PORT}#" docker-compose-azerothcore-services-custom.env + # Toggle Docker images based on module selection + if [ "$MODULE_SELECTION_MODE" != "none" ]; then + # Swap specific images that have _DISABLED variants + sed -i 's/\(AC_AUTHSERVER_IMAGE\)=\(.*\)/\1_TEMP=\2/' docker-compose-azerothcore-services-custom.env + sed -i 's/\(AC_AUTHSERVER_IMAGE\)_DISABLED=\(.*\)/\1=\2/' docker-compose-azerothcore-services-custom.env + sed -i 's/\(AC_AUTHSERVER_IMAGE\)_TEMP=\(.*\)/\1_DISABLED=\2/' docker-compose-azerothcore-services-custom.env + + sed -i 's/\(AC_WORLDSERVER_IMAGE\)=\(.*\)/\1_TEMP=\2/' docker-compose-azerothcore-services-custom.env + sed -i 's/\(AC_WORLDSERVER_IMAGE\)_DISABLED=\(.*\)/\1=\2/' docker-compose-azerothcore-services-custom.env + sed -i 's/\(AC_WORLDSERVER_IMAGE\)_TEMP=\(.*\)/\1_DISABLED=\2/' docker-compose-azerothcore-services-custom.env + + sed -i 's/\(AC_CLIENT_DATA_IMAGE\)=\(.*\)/\1_TEMP=\2/' docker-compose-azerothcore-services-custom.env + sed -i 's/\(AC_CLIENT_DATA_IMAGE\)_DISABLED=\(.*\)/\1=\2/' docker-compose-azerothcore-services-custom.env + sed -i 's/\(AC_CLIENT_DATA_IMAGE\)_TEMP=\(.*\)/\1_DISABLED=\2/' docker-compose-azerothcore-services-custom.env + fi + # Create custom tools environment file print_status "INFO" "Creating custom tools environment file..." cp docker-compose-azerothcore-tools.env docker-compose-azerothcore-tools-custom.env @@ -524,6 +548,14 @@ main() { # Substitute values in tools env file using a different delimiter sed -i "s#STORAGE_ROOT=.*#STORAGE_ROOT=${STORAGE_ROOT}#" docker-compose-azerothcore-tools-custom.env + # Toggle tools images based on module selection + if [ "$MODULE_SELECTION_MODE" != "none" ]; then + # Swap AC_TOOLS_IMAGE to enable mod-playerbots tools + sed -i 's/\(AC_TOOLS_IMAGE\)=\(.*\)/\1_TEMP=\2/' docker-compose-azerothcore-tools-custom.env + sed -i 's/\(AC_TOOLS_IMAGE\)_DISABLED=\(.*\)/\1=\2/' docker-compose-azerothcore-tools-custom.env + sed -i 's/\(AC_TOOLS_IMAGE\)_TEMP=\(.*\)/\1_DISABLED=\2/' docker-compose-azerothcore-tools-custom.env + fi + # Create custom modules environment file (only if modules are enabled) if [ "$MODULE_SELECTION_MODE" != "none" ]; then print_status "INFO" "Creating custom modules environment file..."