mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-02-03 19:03:50 +00:00
Compare commits
3 Commits
681da2767b
...
251b5d8f9f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
251b5d8f9f | ||
|
|
5620fbae91 | ||
|
|
319da1a553 |
@@ -1,261 +0,0 @@
|
||||
# Generated by azerothcore-rm/setup.sh
|
||||
|
||||
# Compose overrides (set to 1 to include matching file under compose-overrides/)
|
||||
# mysql-expose.yml -> exposes MySQL externally via COMPOSE_OVERRIDE_MYSQL_EXPOSE_ENABLED
|
||||
# worldserver-debug-logging.yml -> raises log verbosity via COMPOSE_OVERRIDE_WORLDSERVER_DEBUG_LOGGING_ENABLED
|
||||
COMPOSE_OVERRIDE_MYSQL_EXPOSE_ENABLED=0
|
||||
COMPOSE_OVERRIDE_WORLDSERVER_DEBUG_LOGGING_ENABLED=0
|
||||
|
||||
COMPOSE_PROJECT_NAME=azerothcore-stack
|
||||
|
||||
STORAGE_PATH=/nfs/azerothcore
|
||||
STORAGE_PATH_LOCAL=./local-storage
|
||||
BACKUP_PATH=${STORAGE_PATH}/backups
|
||||
TZ=America/New_York
|
||||
|
||||
# Database
|
||||
MYSQL_IMAGE=mysql:8.0
|
||||
MYSQL_ROOT_PASSWORD=azerothcore123
|
||||
MYSQL_ROOT_HOST=%
|
||||
MYSQL_USER=root
|
||||
MYSQL_PORT=3306
|
||||
MYSQL_EXTERNAL_PORT=64306
|
||||
MYSQL_DISABLE_BINLOG=1
|
||||
MYSQL_CONFIG_DIR=${STORAGE_PATH}/config/mysql/conf.d
|
||||
MYSQL_CHARACTER_SET=utf8mb4
|
||||
MYSQL_COLLATION=utf8mb4_unicode_ci
|
||||
MYSQL_MAX_CONNECTIONS=1000
|
||||
MYSQL_INNODB_BUFFER_POOL_SIZE=256M
|
||||
MYSQL_INNODB_LOG_FILE_SIZE=64M
|
||||
MYSQL_INNODB_REDO_LOG_CAPACITY=512M
|
||||
MYSQL_RUNTIME_TMPFS_SIZE=8G
|
||||
MYSQL_HOST=ac-mysql
|
||||
DB_WAIT_RETRIES=60
|
||||
DB_WAIT_SLEEP=10
|
||||
DB_AUTH_NAME=acore_auth
|
||||
DB_WORLD_NAME=acore_world
|
||||
DB_CHARACTERS_NAME=acore_characters
|
||||
DB_PLAYERBOTS_NAME=acore_playerbots
|
||||
AC_DB_IMPORT_IMAGE=azerothcore-stack:db-import-playerbots
|
||||
|
||||
# Services (images)
|
||||
AC_AUTHSERVER_IMAGE=acore/ac-wotlk-authserver:master
|
||||
AC_WORLDSERVER_IMAGE=acore/ac-wotlk-worldserver:master
|
||||
AC_AUTHSERVER_IMAGE_PLAYERBOTS=azerothcore-stack:authserver-playerbots
|
||||
AC_WORLDSERVER_IMAGE_PLAYERBOTS=azerothcore-stack:worldserver-playerbots
|
||||
AC_AUTHSERVER_IMAGE_MODULES=azerothcore-stack:authserver-modules-latest
|
||||
AC_WORLDSERVER_IMAGE_MODULES=azerothcore-stack:worldserver-modules-latest
|
||||
|
||||
# Client data images
|
||||
AC_CLIENT_DATA_IMAGE=acore/ac-wotlk-client-data:master
|
||||
AC_CLIENT_DATA_IMAGE_PLAYERBOTS=azerothcore-stack:client-data-playerbots
|
||||
CLIENT_DATA_CACHE_PATH=${STORAGE_PATH_LOCAL}/client-data-cache
|
||||
CLIENT_DATA_PATH=${STORAGE_PATH}/client-data
|
||||
|
||||
# Build artifacts
|
||||
DOCKER_IMAGE_TAG=master
|
||||
AC_AUTHSERVER_IMAGE_BASE=acore/ac-wotlk-authserver
|
||||
AC_WORLDSERVER_IMAGE_BASE=acore/ac-wotlk-worldserver
|
||||
AC_DB_IMPORT_IMAGE_BASE=acore/ac-wotlk-db-import
|
||||
AC_CLIENT_DATA_IMAGE_BASE=acore/ac-wotlk-client-data
|
||||
|
||||
# Container user
|
||||
CONTAINER_USER=1001:1000
|
||||
|
||||
# Containers
|
||||
CONTAINER_MYSQL=ac-mysql
|
||||
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
|
||||
|
||||
# Ports
|
||||
AUTH_EXTERNAL_PORT=3784
|
||||
AUTH_PORT=3724
|
||||
WORLD_EXTERNAL_PORT=8215
|
||||
WORLD_PORT=8085
|
||||
SOAP_EXTERNAL_PORT=7778
|
||||
SOAP_PORT=7878
|
||||
|
||||
# Realm
|
||||
SERVER_ADDRESS=192.168.0.179
|
||||
REALM_PORT=8215
|
||||
|
||||
# Backups
|
||||
BACKUP_RETENTION_DAYS=3
|
||||
BACKUP_RETENTION_HOURS=6
|
||||
BACKUP_DAILY_TIME=09
|
||||
BACKUP_HEALTHCHECK_MAX_MINUTES=1440
|
||||
BACKUP_HEALTHCHECK_GRACE_SECONDS=4500
|
||||
|
||||
|
||||
# Modules
|
||||
MODULE_PLAYERBOTS=1
|
||||
MODULE_AOE_LOOT=0
|
||||
MODULE_LEARN_SPELLS=1
|
||||
MODULE_FIREWORKS=1
|
||||
MODULE_INDIVIDUAL_PROGRESSION=0
|
||||
MODULE_AHBOT=0
|
||||
MODULE_AUTOBALANCE=0
|
||||
MODULE_TRANSMOG=1
|
||||
MODULE_NPC_BUFFER=1
|
||||
MODULE_DYNAMIC_XP=0
|
||||
MODULE_SOLO_LFG=1
|
||||
MODULE_1V1_ARENA=1
|
||||
MODULE_PHASED_DUELS=0
|
||||
MODULE_BREAKING_NEWS=1
|
||||
MODULE_BOSS_ANNOUNCER=1
|
||||
MODULE_ACCOUNT_ACHIEVEMENTS=1
|
||||
MODULE_AUTO_REVIVE=1
|
||||
MODULE_GAIN_HONOR_GUARD=1
|
||||
MODULE_ELUNA=1
|
||||
MODULE_TIME_IS_TIME=1
|
||||
MODULE_POCKET_PORTAL=0
|
||||
MODULE_RANDOM_ENCHANTS=1
|
||||
MODULE_SOLOCRAFT=1
|
||||
MODULE_PVP_TITLES=0
|
||||
MODULE_NPC_BEASTMASTER=1
|
||||
MODULE_NPC_ENCHANTER=1
|
||||
MODULE_INSTANCE_RESET=1
|
||||
MODULE_LEVEL_GRANT=0
|
||||
MODULE_ARAC=1
|
||||
MODULE_ASSISTANT=1
|
||||
MODULE_REAGENT_BANK=1
|
||||
MODULE_BLACK_MARKET_AUCTION_HOUSE=1
|
||||
MODULE_CHALLENGE_MODES=0
|
||||
MODULE_OLLAMA_CHAT=0
|
||||
MODULE_PLAYER_BOT_LEVEL_BRACKETS=0
|
||||
MODULE_STATBOOSTER=0
|
||||
MODULE_DUNGEON_RESPAWN=0
|
||||
MODULE_SKELETON_MODULE=0
|
||||
MODULE_BG_SLAVERYVALLEY=0
|
||||
MODULE_AZEROTHSHARD=0
|
||||
MODULE_WORGOBLIN=0
|
||||
MODULE_ELUNA_TS=1
|
||||
MODULE_AIO=1
|
||||
MODULE_ELUNA_SCRIPTS=1
|
||||
MODULE_TRANSMOG_AIO=0
|
||||
MODULE_EVENT_SCRIPTS=1
|
||||
MODULE_LEVEL_UP_REWARD=0
|
||||
MODULE_ACCOUNTWIDE_SYSTEMS=0
|
||||
MODULE_EXCHANGE_NPC=0
|
||||
MODULE_RECRUIT_A_FRIEND=0
|
||||
MODULE_PRESTIGE_DRAFT_MODE=0
|
||||
MODULE_LUA_AH_BOT=0
|
||||
MODULE_HARDCORE_MODE=0
|
||||
MODULE_NPCBOT_EXTENDED_COMMANDS=0
|
||||
MODULE_MULTIVENDOR=0
|
||||
MODULE_TREASURE_CHEST_SYSTEM=0
|
||||
MODULE_ACTIVE_CHAT=1
|
||||
MODULE_ULTIMATE_FULL_LOOT_PVP=0
|
||||
MODULE_HORADRIC_CUBE=0
|
||||
MODULE_CARBON_COPY=0
|
||||
MODULE_TEMP_ANNOUNCEMENTS=0
|
||||
MODULE_ZONE_CHECK=0
|
||||
MODULE_AIO_BLACKJACK=0
|
||||
MODULE_SEND_AND_BIND=0
|
||||
MODULE_DYNAMIC_TRADER=0
|
||||
MODULE_LOTTERY_LUA=0
|
||||
MODULE_DISCORD_NOTIFIER=0
|
||||
MODULE_GLOBAL_MAIL_BANKING_AUCTIONS=0
|
||||
MODULE_GUILDHOUSE=1
|
||||
MODULE_PROGRESSION_SYSTEM=0
|
||||
MODULE_NPC_FREE_PROFESSIONS=1
|
||||
MODULE_DUEL_RESET=0
|
||||
MODULE_ZONE_DIFFICULTY=0
|
||||
MODULE_MORPHSUMMON=1
|
||||
MODULE_SPELL_REGULATOR=0
|
||||
MODULE_WEEKEND_XP=0
|
||||
MODULE_REWARD_PLAYED_TIME=0
|
||||
MODULE_RESURRECTION_SCROLL=0
|
||||
MODULE_ITEM_LEVEL_UP=1
|
||||
MODULE_NPC_TALENT_TEMPLATE=0
|
||||
MODULE_GLOBAL_CHAT=1
|
||||
MODULE_PREMIUM=0
|
||||
MODULE_SYSTEM_VIP=0
|
||||
MODULE_ACORE_SUBSCRIPTIONS=0
|
||||
MODULE_KEEP_OUT=0
|
||||
MODULE_SERVER_AUTO_SHUTDOWN=0
|
||||
MODULE_WHO_LOGGED=0
|
||||
MODULE_ACCOUNT_MOUNTS=0
|
||||
MODULE_ANTIFARMING=0
|
||||
MODULE_ARENA_REPLAY=0
|
||||
MODULE_TIC_TAC_TOE=0
|
||||
MODULE_WAR_EFFORT=0
|
||||
MODULE_PROMOTION_AZEROTHCORE=0
|
||||
|
||||
# Client data
|
||||
CLIENT_DATA_VERSION=
|
||||
|
||||
# Server configuration
|
||||
SERVER_CONFIG_PRESET=none
|
||||
|
||||
# Playerbot runtime
|
||||
PLAYERBOT_ENABLED=1
|
||||
PLAYERBOT_MIN_BOTS=2000
|
||||
PLAYERBOT_MAX_BOTS=4000
|
||||
STACK_IMAGE_MODE=playerbots
|
||||
STACK_SOURCE_VARIANT=playerbots
|
||||
MODULES_ENABLED_LIST=MODULE_PLAYERBOTS,MODULE_LEARN_SPELLS,MODULE_FIREWORKS,MODULE_TRANSMOG,MODULE_NPC_BUFFER,MODULE_SOLO_LFG,MODULE_1V1_ARENA,MODULE_BREAKING_NEWS,MODULE_BOSS_ANNOUNCER,MODULE_ACCOUNT_ACHIEVEMENTS,MODULE_AUTO_REVIVE,MODULE_GAIN_HONOR_GUARD,MODULE_ELUNA,MODULE_TIME_IS_TIME,MODULE_RANDOM_ENCHANTS,MODULE_SOLOCRAFT,MODULE_NPC_BEASTMASTER,MODULE_NPC_ENCHANTER,MODULE_INSTANCE_RESET,MODULE_ARAC,MODULE_ASSISTANT,MODULE_REAGENT_BANK,MODULE_BLACK_MARKET_AUCTION_HOUSE,MODULE_STATBOOSTER,MODULE_ELUNA_TS,MODULE_AIO,MODULE_ELUNA_SCRIPTS,MODULE_EVENT_SCRIPTS,MODULE_ACTIVE_CHAT,MODULE_GUILDHOUSE,MODULE_NPC_FREE_PROFESSIONS,MODULE_MORPHSUMMON,MODULE_ITEM_LEVEL_UP,MODULE_GLOBAL_CHAT
|
||||
MODULES_CPP_LIST=MODULE_LEARN_SPELLS,MODULE_FIREWORKS,MODULE_TRANSMOG,MODULE_NPC_BUFFER,MODULE_SOLO_LFG,MODULE_1V1_ARENA,MODULE_BREAKING_NEWS,MODULE_BOSS_ANNOUNCER,MODULE_ACCOUNT_ACHIEVEMENTS,MODULE_AUTO_REVIVE,MODULE_GAIN_HONOR_GUARD,MODULE_ELUNA,MODULE_TIME_IS_TIME,MODULE_RANDOM_ENCHANTS,MODULE_SOLOCRAFT,MODULE_NPC_BEASTMASTER,MODULE_NPC_ENCHANTER,MODULE_INSTANCE_RESET,MODULE_ARAC,MODULE_ASSISTANT,MODULE_REAGENT_BANK,MODULE_STATBOOSTER,MODULE_AIO,MODULE_GUILDHOUSE,MODULE_NPC_FREE_PROFESSIONS,MODULE_MORPHSUMMON,MODULE_ITEM_LEVEL_UP,MODULE_GLOBAL_CHAT
|
||||
MODULES_REQUIRES_CUSTOM_BUILD=1
|
||||
MODULES_REQUIRES_PLAYERBOT_SOURCE=1
|
||||
|
||||
# Rebuild automation
|
||||
AUTO_REBUILD_ON_DEPLOY=0
|
||||
MODULES_REBUILD_SOURCE_PATH=./local-storage/source/azerothcore-playerbots
|
||||
|
||||
# Eluna
|
||||
AC_ELUNA_ENABLED=1 # Power users may set to 0 to turn off bundled Eluna runtime
|
||||
AC_ELUNA_TRACE_BACK=1
|
||||
AC_ELUNA_AUTO_RELOAD=1
|
||||
AC_ELUNA_BYTECODE_CACHE=1
|
||||
AC_ELUNA_SCRIPT_PATH=lua_scripts
|
||||
AC_ELUNA_REQUIRE_PATHS=
|
||||
AC_ELUNA_REQUIRE_CPATHS=
|
||||
AC_ELUNA_AUTO_RELOAD_INTERVAL=1
|
||||
|
||||
# Tools
|
||||
PMA_HOST=ac-mysql
|
||||
PMA_PORT=3306
|
||||
PMA_USER=root
|
||||
PMA_EXTERNAL_PORT=8081
|
||||
PMA_ARBITRARY=1
|
||||
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
|
||||
|
||||
# Health checks
|
||||
MYSQL_HEALTHCHECK_INTERVAL=20s
|
||||
MYSQL_HEALTHCHECK_TIMEOUT=15s
|
||||
MYSQL_HEALTHCHECK_RETRIES=25
|
||||
MYSQL_HEALTHCHECK_START_PERIOD=120s
|
||||
AUTH_HEALTHCHECK_INTERVAL=30s
|
||||
AUTH_HEALTHCHECK_TIMEOUT=10s
|
||||
AUTH_HEALTHCHECK_RETRIES=3
|
||||
AUTH_HEALTHCHECK_START_PERIOD=60s
|
||||
WORLD_HEALTHCHECK_INTERVAL=30s
|
||||
WORLD_HEALTHCHECK_TIMEOUT=10s
|
||||
WORLD_HEALTHCHECK_RETRIES=3
|
||||
WORLD_HEALTHCHECK_START_PERIOD=120s
|
||||
BACKUP_HEALTHCHECK_INTERVAL=60s
|
||||
BACKUP_HEALTHCHECK_TIMEOUT=30s
|
||||
BACKUP_HEALTHCHECK_RETRIES=3
|
||||
BACKUP_HEALTHCHECK_START_PERIOD=120s
|
||||
|
||||
# Networking
|
||||
NETWORK_NAME=azerothcore
|
||||
NETWORK_SUBNET=172.20.0.0/16
|
||||
NETWORK_GATEWAY=172.20.0.1
|
||||
|
||||
# Storage helpers
|
||||
HOST_ZONEINFO_PATH=/usr/share/zoneinfo
|
||||
|
||||
# Helper images
|
||||
ALPINE_GIT_IMAGE=alpine/git:latest
|
||||
ALPINE_IMAGE=alpine:latest
|
||||
@@ -263,9 +263,9 @@ func buildPortsTable(s *Snapshot) *TableNoCol {
|
||||
table := NewTableNoCol()
|
||||
rows := [][]string{{"Port", "Number", "Reachable"}}
|
||||
for _, p := range s.Ports {
|
||||
state := "down"
|
||||
state := "Closed"
|
||||
if p.Reachable {
|
||||
state = "up"
|
||||
state = "Open"
|
||||
}
|
||||
rows = append(rows, []string{p.Name, p.Port, state})
|
||||
}
|
||||
@@ -413,10 +413,10 @@ func renderSnapshot(s *Snapshot, selectedModule int) (*widgets.List, *ui.Grid) {
|
||||
if portsTable.RowStyles == nil {
|
||||
portsTable.RowStyles = make(map[int]ui.Style)
|
||||
}
|
||||
if portsTable.Rows[i][2] == "up" {
|
||||
if portsTable.Rows[i][2] == "Open" {
|
||||
portsTable.RowStyles[i] = ui.NewStyle(ui.ColorGreen)
|
||||
} else {
|
||||
portsTable.RowStyles[i] = ui.NewStyle(ui.ColorRed)
|
||||
portsTable.RowStyles[i] = ui.NewStyle(ui.ColorYellow)
|
||||
}
|
||||
}
|
||||
modulesList := buildModulesList(s)
|
||||
@@ -453,30 +453,68 @@ func renderSnapshot(s *Snapshot, selectedModule int) (*widgets.List, *ui.Grid) {
|
||||
usersPar.Text = fmt.Sprintf(" Online: %d\n Accounts: %d\n Characters: %d\n Active 7d: %d", s.Users.Online, s.Users.Accounts, s.Users.Characters, s.Users.Active7d)
|
||||
usersPar.Border = true
|
||||
|
||||
const headerRowFrac = 0.18
|
||||
const middleRowFrac = 0.43
|
||||
const bottomRowFrac = 0.39
|
||||
|
||||
// Derive inner row ratios from the computed bottom row height so that
|
||||
// internal containers tile their parent with the same spacing behavior
|
||||
// as top-level rows.
|
||||
grid := ui.NewGrid()
|
||||
termWidth, termHeight := ui.TerminalDimensions()
|
||||
|
||||
headerHeight := int(float64(termHeight) * headerRowFrac)
|
||||
middleHeight := int(float64(termHeight) * middleRowFrac)
|
||||
bottomHeight := termHeight - headerHeight - middleHeight
|
||||
if bottomHeight <= 0 {
|
||||
bottomHeight = int(float64(termHeight) * bottomRowFrac)
|
||||
}
|
||||
|
||||
helpHeight := int(float64(bottomHeight) * 0.32)
|
||||
if helpHeight < 1 {
|
||||
helpHeight = 1
|
||||
}
|
||||
moduleInfoHeight := bottomHeight - helpHeight
|
||||
if moduleInfoHeight < 1 {
|
||||
moduleInfoHeight = 1
|
||||
}
|
||||
|
||||
storageHeight := int(float64(bottomHeight) * 0.513)
|
||||
if storageHeight < 1 {
|
||||
storageHeight = 1
|
||||
}
|
||||
volumesHeight := bottomHeight - storageHeight
|
||||
if volumesHeight < 1 {
|
||||
volumesHeight = 1
|
||||
}
|
||||
|
||||
helpRatio := float64(helpHeight) / float64(bottomHeight)
|
||||
moduleInfoRatio := float64(moduleInfoHeight) / float64(bottomHeight)
|
||||
storageRatio := float64(storageHeight) / float64(bottomHeight)
|
||||
volumesRatio := float64(volumesHeight) / float64(bottomHeight)
|
||||
|
||||
grid.SetRect(0, 0, termWidth, termHeight)
|
||||
grid.Set(
|
||||
ui.NewRow(0.18,
|
||||
ui.NewRow(headerRowFrac,
|
||||
ui.NewCol(0.34, header),
|
||||
ui.NewCol(0.33, buildPar),
|
||||
ui.NewCol(0.33, usersPar),
|
||||
),
|
||||
ui.NewRow(0.43,
|
||||
ui.NewRow(middleRowFrac,
|
||||
ui.NewCol(0.6, servicesTable),
|
||||
ui.NewCol(0.4, portsTable),
|
||||
),
|
||||
ui.NewRow(0.39,
|
||||
ui.NewRow(bottomRowFrac,
|
||||
ui.NewCol(0.25, modulesList),
|
||||
ui.NewCol(0.15,
|
||||
ui.NewRow(0.32, helpPar),
|
||||
ui.NewRow(0.68, moduleInfoPar),
|
||||
ui.NewRow(helpRatio, helpPar),
|
||||
ui.NewRow(moduleInfoRatio, moduleInfoPar),
|
||||
),
|
||||
ui.NewCol(0.6,
|
||||
ui.NewRow(0.513,
|
||||
ui.NewRow(storageRatio,
|
||||
ui.NewCol(1.0, storagePar),
|
||||
),
|
||||
ui.NewRow(0.487,
|
||||
ui.NewRow(volumesRatio,
|
||||
ui.NewCol(1.0, volumesPar),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user