This commit introduces major enhancements to the module installation system, database management, and configuration handling for AzerothCore deployments. ## Module System Improvements ### Module SQL Staging & Installation - Refactor module SQL staging to properly handle AzerothCore's sql/ directory structure - Fix SQL staging path to use correct AzerothCore format (sql/custom/db_*/*) - Implement conditional module database importing based on enabled modules - Add support for both cpp-modules and lua-scripts module types - Handle rsync exit code 23 (permission warnings) gracefully during deployment ### Module Manifest & Automation - Add automated module manifest generation via GitHub Actions workflow - Implement Python-based module manifest updater with comprehensive validation - Add module dependency tracking and SQL file discovery - Support for blocked modules and module metadata management ## Database Management Enhancements ### Database Import System - Add db-guard container for continuous database health monitoring and verification - Implement conditional database import that skips when databases are current - Add backup restoration and SQL staging coordination - Support for Playerbots database (4th database) in all import operations - Add comprehensive database health checking and status reporting ### Database Configuration - Implement 10 new dbimport.conf settings from environment variables: - Database.Reconnect.Seconds/Attempts for connection reliability - Updates.AllowedModules for module auto-update control - Updates.Redundancy for data integrity checks - Worker/Synch thread settings for all three core databases - Auto-apply dbimport.conf settings via auto-post-install.sh - Add environment variable injection for db-import and db-guard containers ### Backup & Recovery - Fix backup scheduler to prevent immediate execution on container startup - Add backup status monitoring script with detailed reporting - Implement backup import/export utilities - Add database verification scripts for SQL update tracking ## User Import Directory - Add new import/ directory for user-provided database files and configurations - Support for custom SQL files, configuration overrides, and example templates - Automatic import of user-provided databases and configs during initialization - Documentation and examples for custom database imports ## Configuration & Environment - Eliminate CLIENT_DATA_VERSION warning by adding default value syntax - Improve CLIENT_DATA_VERSION documentation in .env.template - Add comprehensive database import settings to .env and .env.template - Update setup.sh to handle new configuration variables with proper defaults ## Monitoring & Debugging - Add status dashboard with Go-based terminal UI (statusdash.go) - Implement JSON status output (statusjson.sh) for programmatic access - Add comprehensive database health check script - Add repair-storage-permissions.sh utility for permission issues ## Testing & Documentation - Add Phase 1 integration test suite for module installation verification - Add comprehensive documentation for: - Database management (DATABASE_MANAGEMENT.md) - Module SQL analysis (AZEROTHCORE_MODULE_SQL_ANALYSIS.md) - Implementation mapping (IMPLEMENTATION_MAP.md) - SQL staging comparison and path coverage - Module assets and DBC file requirements - Update SCRIPTS.md, ADVANCED.md, and troubleshooting documentation - Update references from database-import/ to import/ directory ## Breaking Changes - Renamed database-import/ directory to import/ for clarity - Module SQL files now staged to AzerothCore-compatible paths - db-guard container now required for proper database lifecycle management ## Bug Fixes - Fix module SQL staging directory structure for AzerothCore compatibility - Handle rsync exit code 23 gracefully during deployments - Prevent backup from running immediately on container startup - Correct SQL staging paths for proper module installation
6.7 KiB
AzerothCore RealmMaster
A complete containerized deployment of AzerothCore WoW 3.3.5a (Wrath of the Lich King) private server with 93+ enhanced modules and intelligent automation.
Table of Contents
- Quick Start
- What You Get
- Getting Started → docs/GETTING_STARTED.md
- Complete Module Catalog → docs/MODULES.md
- Management & Operations → docs/GETTING_STARTED.md
- Advanced Configuration → docs/ADVANCED.md
- Custom NPCs Guide → docs/NPCS.md
- Script Reference → docs/SCRIPTS.md
- Troubleshooting → docs/TROUBLESHOOTING.md
- Credits & Next Steps
Quick Start
Prerequisites
- Docker with Docker Compose
- 16GB+ RAM and 32GB+ storage
- Linux/macOS/WSL2 (Windows with WSL2 recommended)
Three Simple Steps
# 1. Get the code
git clone https://github.com/uprightbass360/AzerothCore-RealmMaster.git
cd AzerothCore-RealmMaster
# 2. Configure your server
./setup.sh
# 3. Deploy
./deploy.sh # Always required - Supports ssh remote deploy or local
./status.sh # Optional - Shows health and accesibility of all containers and current user data
First deployment takes 30-60 minutes for database setup and client data download. Subsequent starts are much faster.
See Getting Started for detailed walkthrough.
What You Get
✅ Core Server Components
- AzerothCore 3.3.5a - WotLK server application with 93+ enhanced modules
- MySQL 8.0 - Database with intelligent initialization and restoration
- Smart Module System - Automated module management and source builds
- phpMyAdmin - Web-based database administration
- Keira3 - Game content editor and developer tools
✅ Automated Configuration
- Intelligent Database Setup - Smart backup detection, restoration, and conditional schema import
- Restore Safety Checks - The import job now validates the live MySQL runtime before honoring restore markers so stale tmpfs volumes can’t trick automation into skipping a needed restore (see docs/DATABASE_MANAGEMENT.md)
- Backup Management - Automated hourly/daily backups with intelligent restoration
- Restore-Aware Module SQL - After a backup restore the ledger snapshot from that backup is synced into shared storage and
stage-modules.shrecopies every enabled SQL file into/azerothcore/data/sql/updates/*so the worldserver’s built-in updater reapplies anything the database still needs (see docs/DATABASE_MANAGEMENT.md) - Module Integration - Automatic source builds when C++ modules are enabled
- Service Orchestration - Profile-based deployment (standard/playerbots/modules)
Getting Started
Quick Overview:
- Clone repository →
./setup.sh→./build.sh(if needed) →./deploy.sh - Create admin account and connect your WoW 3.3.5a client
- Access management tools at http://localhost:8081 (phpMyAdmin) and http://localhost:4201 (Keira3)
For complete local and remote deployment guides, see docs/GETTING_STARTED.md.
Complete Module Catalog
Choose from 93+ enhanced modules spanning automation, quality-of-life improvements, gameplay enhancements, PvP features, and more. All modules are automatically downloaded, configured, and integrated during deployment.
Popular Categories:
- Automation - Playerbots, AI chat, level management
- Quality of Life - Solo LFG, AOE looting, auto-revive
- Gameplay - Autobalance, challenge modes, hardcore mode
- Services - Transmog, profession NPCs, talent templates
Browse the complete catalog with descriptions at docs/MODULES.md.
Custom NPCs Guide
The server includes 14 custom NPCs providing enhanced functionality including profession training, enchantments, arena services, and more. All NPCs are spawnable through GM commands and designed for permanent placement.
Available NPCs:
- Service NPCs - Profession training, reagent banking, instance resets
- Enhancement NPCs - Enchanting, buffing, pet management, transmog
- PvP NPCs - 1v1 arena battlemaster
- Guild House NPCs - Property management and services
For complete spawn commands, coordinates, and functionality details, see docs/NPCS.md.
Management & Operations
For common workflows, management commands, and database operations, see docs/GETTING_STARTED.md.
- Keep the module catalog current with
scripts/python/update_module_manifest.pyor trigger the scheduled Sync Module Manifest GitHub Action to auto-open a PR with the latest AzerothCore topic repos.
Advanced Configuration
For architecture details, storage structure, build system, and advanced customization, see docs/ADVANCED.md.
Script Reference
For comprehensive documentation of all deployment scripts, management commands, and automation tools, see docs/SCRIPTS.md.
Troubleshooting
For diagnostic procedures, common issues, and backup system documentation, see docs/TROUBLESHOOTING.md.
Credits & Next Steps
Project Credits
This project builds upon:
- AzerothCore - Core server application
- AzerothCore Module Community - Enhanced gameplay modules
Key Features
- ✅ Fully Automated Setup - Interactive configuration and deployment
- ✅ Intelligent Module System - Automatic source builds and profile selection
- ✅ Automated Backups - Health checks, scheduled backups, and monitoring
- ✅ Docker-Based - Containerized deployment for easy setup and portability
- ✅ Comprehensive Documentation - Clear setup and troubleshooting guides
Next Steps After Installation
Essential First Steps:
- Create admin account:
docker attach ac-worldserver→account create admin password→account set gmlevel admin 3 -1 - Test your setup: Connect with WoW 3.3.5a client using
set realmlist 127.0.0.1 - Access web tools: phpMyAdmin (port 8081) and Keira3 (port 4201)
For detailed server administration, monitoring, backup configuration, and performance tuning, see docs/GETTING_STARTED.md.
