Files
AzerothCore-RealmMaster/.env.prebuilt
2026-01-10 17:09:22 -05:00

322 lines
9.9 KiB
Plaintext

# ================================================================================
# AzerothCore RealmMaster - Pre-Built Images Configuration
# ================================================================================
# Use this minimal configuration file to deploy pre-built RealmMaster images
# from Docker Hub. No local building required!
#
# Quick Start:
# 1. Copy this file: cp .env.prebuilt .env
# 2. Set your DOCKERHUB_USERNAME below
# 3. Run: ./deploy.sh
#
# The pre-built images include 32 modules from the RealmMaster profile:
# - Playerbots, Transmog, Solo LFG, Eluna, NPC Buffer, and 27 more
# - See config/module-profiles/RealmMaster.json for full list
# ================================================================================
# =====================
# REQUIRED: Docker Hub Configuration
# =====================
# Set this to your Docker Hub username where the images are published
DOCKERHUB_USERNAME=your-dockerhub-username
# =====================
# Project Configuration
# =====================
COMPOSE_PROJECT_NAME=azerothcore-realmmaster
# =====================
# Module Profile Selection
# =====================
# Choose which module profile build to use:
# - realmmaster: 32 modules (playerbots, transmog, solo-lfg, eluna, etc.) - ✅ Available now (Recommended)
#
# Additional profiles (available soon - will be built on demand):
# - suggested-modules: Alternative suggested module set
# - all-modules: All supported modules
# - playerbots-only: Just playerbots
#
# Note: Only 'realmmaster' images are currently published to Docker Hub.
# Other profiles will be available when built via GitHub Actions workflow.
MODULE_PROFILE=realmmaster
# =====================
# Pre-Built Images from Docker Hub
# =====================
# These images are built nightly with different module profiles
# Using profile-specific tags ensures you get the exact module set you want
AC_AUTHSERVER_IMAGE_MODULES=${DOCKERHUB_USERNAME}/${COMPOSE_PROJECT_NAME}:authserver-${MODULE_PROFILE}-latest
AC_WORLDSERVER_IMAGE_MODULES=${DOCKERHUB_USERNAME}/${COMPOSE_PROJECT_NAME}:worldserver-${MODULE_PROFILE}-latest
# Alternative: Use date-tagged images for version pinning
# AC_AUTHSERVER_IMAGE_MODULES=${DOCKERHUB_USERNAME}/${COMPOSE_PROJECT_NAME}:authserver-${MODULE_PROFILE}-20260109
# AC_WORLDSERVER_IMAGE_MODULES=${DOCKERHUB_USERNAME}/${COMPOSE_PROJECT_NAME}:worldserver-${MODULE_PROFILE}-20260109
# Alternative: Use generic latest tags (default: realmmaster profile)
# AC_AUTHSERVER_IMAGE_MODULES=${DOCKERHUB_USERNAME}/${COMPOSE_PROJECT_NAME}:authserver-latest
# AC_WORLDSERVER_IMAGE_MODULES=${DOCKERHUB_USERNAME}/${COMPOSE_PROJECT_NAME}:worldserver-latest
# Standard images (fallback if modules images not available)
AC_AUTHSERVER_IMAGE=acore/ac-wotlk-authserver:master
AC_WORLDSERVER_IMAGE=acore/ac-wotlk-worldserver:master
# Playerbots images (referenced by docker-compose, even if using modules profile)
AC_AUTHSERVER_IMAGE_PLAYERBOTS=${COMPOSE_PROJECT_NAME}:authserver-playerbots
AC_WORLDSERVER_IMAGE_PLAYERBOTS=${COMPOSE_PROJECT_NAME}:worldserver-playerbots
AC_CLIENT_DATA_IMAGE_PLAYERBOTS=${COMPOSE_PROJECT_NAME}:client-data-playerbots
# Database and client data images
AC_DB_IMPORT_IMAGE=acore/ac-wotlk-db-import:master
AC_CLIENT_DATA_IMAGE=acore/ac-wotlk-client-data:master
# Helper images
ALPINE_IMAGE=alpine:latest
MYSQL_IMAGE=mysql:8.0
# =====================
# Storage Paths
# =====================
STORAGE_PATH=./storage
STORAGE_PATH_LOCAL=./local-storage
STORAGE_CONFIG_PATH=${STORAGE_PATH}/config
STORAGE_LOGS_PATH=${STORAGE_PATH}/logs
STORAGE_MODULES_PATH=${STORAGE_PATH}/modules
STORAGE_LUA_SCRIPTS_PATH=${STORAGE_PATH}/lua_scripts
STORAGE_MODULE_SQL_PATH=${STORAGE_PATH}/module-sql-updates
STORAGE_INSTALL_MARKERS_PATH=${STORAGE_PATH}/install-markers
STORAGE_CLIENT_DATA_PATH=${STORAGE_PATH}/client-data
BACKUP_PATH=${STORAGE_PATH}/backups
# =====================
# Timezone
# =====================
HOST_ZONEINFO_PATH=/usr/share/zoneinfo
TZ=UTC
# =====================
# Networking
# =====================
NETWORK_NAME=azerothcore
NETWORK_SUBNET=172.20.0.0/16
NETWORK_GATEWAY=172.20.0.1
# =====================
# Server Address & Realm
# =====================
# Change this to your server's public IP or domain name
SERVER_ADDRESS=127.0.0.1
REALM_PORT=8215
# =====================
# Ports
# =====================
# Authentication server
AUTH_EXTERNAL_PORT=3784
AUTH_PORT=3724
# World server
WORLD_EXTERNAL_PORT=8215
WORLD_PORT=8085
# SOAP/Remote access
SOAP_EXTERNAL_PORT=7778
SOAP_PORT=7878
# MySQL database (for external access)
MYSQL_EXTERNAL_PORT=64306
# phpMyAdmin web interface
PMA_EXTERNAL_PORT=8081
# Keira3 editor interface
KEIRA3_EXTERNAL_PORT=4201
# =====================
# MySQL Database Configuration
# =====================
MYSQL_IMAGE=mysql:8.0
CONTAINER_MYSQL=ac-mysql
MYSQL_HOST=ac-mysql
MYSQL_PORT=3306
# Security: Change these passwords!
MYSQL_ROOT_PASSWORD=azerothcore123
MYSQL_ROOT_HOST=%
MYSQL_USER=root
# Database names
DB_AUTH_NAME=acore_auth
DB_WORLD_NAME=acore_world
DB_CHARACTERS_NAME=acore_characters
DB_PLAYERBOTS_NAME=acore_playerbots
# Database performance settings
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 tmpfs (RAM disk) for performance
MYSQL_RUNTIME_TMPFS_SIZE=8G
MYSQL_DISABLE_BINLOG=1
# Database connection settings
DB_WAIT_RETRIES=60
DB_WAIT_SLEEP=10
DB_RECONNECT_SECONDS=5
DB_RECONNECT_ATTEMPTS=5
# Database worker threads
DB_LOGIN_WORKER_THREADS=1
DB_WORLD_WORKER_THREADS=1
DB_CHARACTER_WORKER_THREADS=1
DB_LOGIN_SYNCH_THREADS=1
DB_WORLD_SYNCH_THREADS=1
DB_CHARACTER_SYNCH_THREADS=1
# =====================
# Automated Backups
# =====================
BACKUP_RETENTION_DAYS=3
BACKUP_RETENTION_HOURS=6
BACKUP_DAILY_TIME=09:00
BACKUP_INTERVAL_MINUTES=60
BACKUP_EXTRA_DATABASES=
BACKUP_HEALTHCHECK_MAX_MINUTES=1440
BACKUP_HEALTHCHECK_GRACE_SECONDS=4500
# =====================
# Module Configuration (Pre-Built)
# =====================
# These settings tell the system that modules are already built into the images
STACK_IMAGE_MODE=modules
STACK_SOURCE_VARIANT=playerbots
# Key modules enabled (needed for profile detection)
# The RealmMaster profile includes playerbots, so we need this set for deploy.sh to use the correct profile
MODULE_PLAYERBOTS=1
# Note: MODULES_ENABLED_LIST varies by profile - the list below is for the 'realmmaster' profile
# For other profiles, see the corresponding JSON in config/module-profiles/
MODULES_ENABLED_LIST=MODULE_PLAYERBOTS,MODULE_TRANSMOG,MODULE_SOLO_LFG,MODULE_ELUNA,MODULE_AIO,MODULE_NPC_BUFFER,MODULE_NPC_BEASTMASTER,MODULE_SOLOCRAFT,MODULE_1V1_ARENA,MODULE_ACCOUNT_ACHIEVEMENTS,MODULE_ACTIVE_CHAT,MODULE_ARAC,MODULE_ASSISTANT,MODULE_AUTO_REVIVE,MODULE_BLACK_MARKET_AUCTION_HOUSE,MODULE_BOSS_ANNOUNCER,MODULE_BREAKING_NEWS,MODULE_ELUNA_SCRIPTS,MODULE_EVENT_SCRIPTS,MODULE_FIREWORKS,MODULE_GAIN_HONOR_GUARD,MODULE_GLOBAL_CHAT,MODULE_GUILDHOUSE,MODULE_INSTANCE_RESET,MODULE_ITEM_LEVEL_UP,MODULE_LEARN_SPELLS,MODULE_MORPHSUMMON,MODULE_NPC_ENCHANTER,MODULE_NPC_FREE_PROFESSIONS,MODULE_RANDOM_ENCHANTS,MODULE_REAGENT_BANK,MODULE_TIME_IS_TIME
MODULES_CPP_LIST=
MODULES_REQUIRES_CUSTOM_BUILD=0
MODULES_REQUIRES_PLAYERBOT_SOURCE=1
# =====================
# Playerbot Runtime Configuration
# =====================
# Enable/disable playerbots and set population
PLAYERBOT_ENABLED=1
PLAYERBOT_MIN_BOTS=40
PLAYERBOT_MAX_BOTS=200
# =====================
# Client Data
# =====================
# Client data version (auto-detected when blank)
CLIENT_DATA_VERSION=
CLIENT_DATA_PATH=
# =====================
# Server Configuration Preset
# =====================
# Apply a configuration preset during deployment
# Options: none, blizzlike, fast-leveling, hardcore-pvp, casual-pve
SERVER_CONFIG_PRESET=none
# =====================
# Eluna Lua Scripting
# =====================
AC_ELUNA_ENABLED=1
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
# =====================
# Container Management
# =====================
CONTAINER_USER=0:0
CONTAINER_DB_IMPORT=ac-db-import
CONTAINER_DB_INIT=ac-db-init
CONTAINER_DB_GUARD=ac-db-guard
CONTAINER_BACKUP=ac-backup
CONTAINER_MODULES=ac-modules
CONTAINER_POST_INSTALL=ac-post-install
# =====================
# Database Guard
# =====================
DB_GUARD_RECHECK_SECONDS=120
DB_GUARD_RETRY_SECONDS=10
DB_GUARD_WAIT_ATTEMPTS=60
DB_GUARD_HEALTH_MAX_AGE=180
DB_GUARD_HEALTHCHECK_INTERVAL=30s
DB_GUARD_HEALTHCHECK_TIMEOUT=10s
DB_GUARD_HEALTHCHECK_RETRIES=5
DB_GUARD_VERIFY_INTERVAL_SECONDS=86400
# =====================
# Health Checks
# =====================
# MySQL health checks
MYSQL_HEALTHCHECK_INTERVAL=20s
MYSQL_HEALTHCHECK_TIMEOUT=15s
MYSQL_HEALTHCHECK_RETRIES=25
MYSQL_HEALTHCHECK_START_PERIOD=120s
# Auth server health checks
AUTH_HEALTHCHECK_INTERVAL=30s
AUTH_HEALTHCHECK_TIMEOUT=10s
AUTH_HEALTHCHECK_RETRIES=3
AUTH_HEALTHCHECK_START_PERIOD=60s
# World server health checks
WORLD_HEALTHCHECK_INTERVAL=30s
WORLD_HEALTHCHECK_TIMEOUT=10s
WORLD_HEALTHCHECK_RETRIES=3
WORLD_HEALTHCHECK_START_PERIOD=120s
# Backup health checks
BACKUP_HEALTHCHECK_INTERVAL=60s
BACKUP_HEALTHCHECK_TIMEOUT=30s
BACKUP_HEALTHCHECK_RETRIES=3
BACKUP_HEALTHCHECK_START_PERIOD=120s
# =====================
# Management Tools
# =====================
# phpMyAdmin configuration
PMA_HOST=ac-mysql
PMA_PORT=3306
PMA_USER=root
PMA_ARBITRARY=1
PMA_ABSOLUTE_URI=
PMA_UPLOAD_LIMIT=300M
PMA_MEMORY_LIMIT=512M
PMA_MAX_EXECUTION_TIME=600
# Keira3 configuration
KEIRA_DATABASE_HOST=ac-mysql
KEIRA_DATABASE_PORT=3306
# =====================
# Compose Overrides
# =====================
# Enable optional compose overrides (set to 1 to enable)
COMPOSE_OVERRIDE_MYSQL_EXPOSE_ENABLED=0
COMPOSE_OVERRIDE_WORLDSERVER_DEBUG_LOGGING_ENABLED=0
# =====================
# DO NOT MODIFY BELOW (Build-related, not used with pre-built images)
# =====================
AUTO_REBUILD_ON_DEPLOY=0
DB_UPDATES_ALLOWED_MODULES=all
DB_UPDATES_REDUNDANCY=1