uprightbass360 5c9f1d7389 feat: comprehensive module system and database management improvements
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
2025-11-20 18:26:00 -05:00
2025-11-05 23:32:13 -05:00
2025-11-09 16:47:46 -05:00
2025-11-14 20:55:33 -05:00

AzerothCore RealmMaster Logo

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

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 cant 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.sh recopies every enabled SQL file into /azerothcore/data/sql/updates/* so the worldservers 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:

  1. Clone repository → ./setup.sh./build.sh (if needed) → ./deploy.sh
  2. Create admin account and connect your WoW 3.3.5a client
  3. 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.py or 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:

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:

  1. Create admin account: docker attach ac-worldserveraccount create admin passwordaccount set gmlevel admin 3 -1
  2. Test your setup: Connect with WoW 3.3.5a client using set realmlist 127.0.0.1
  3. 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.

Languages
Shell 85.8%
Python 11.6%
Go 2.6%