mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 09:07:20 +00:00
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
159 lines
6.7 KiB
Markdown
159 lines
6.7 KiB
Markdown
<div align="center">
|
||
<img src="img/logo.jpg" alt="AzerothCore RealmMaster Logo">
|
||
</div>
|
||
|
||
# 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](#quick-start)
|
||
- [What You Get](#what-you-get)
|
||
- [Getting Started](#getting-started) → **[docs/GETTING_STARTED.md](docs/GETTING_STARTED.md)**
|
||
- [Complete Module Catalog](#complete-module-catalog) → **[docs/MODULES.md](docs/MODULES.md)**
|
||
- [Management & Operations](#management--operations) → **[docs/GETTING_STARTED.md](docs/GETTING_STARTED.md)**
|
||
- [Advanced Configuration](#advanced-configuration) → **[docs/ADVANCED.md](docs/ADVANCED.md)**
|
||
- [Custom NPCs Guide](#custom-npcs-guide) → **[docs/NPCS.md](docs/NPCS.md)**
|
||
- [Script Reference](#script-reference) → **[docs/SCRIPTS.md](docs/SCRIPTS.md)**
|
||
- [Troubleshooting](#troubleshooting) → **[docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)**
|
||
- [Credits & Next Steps](#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
|
||
|
||
```bash
|
||
# 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](#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](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 worldserver’s built-in updater reapplies anything the database still needs (see [docs/DATABASE_MANAGEMENT.md](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](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](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](docs/NPCS.md)**.
|
||
|
||
---
|
||
|
||
## Management & Operations
|
||
|
||
For common workflows, management commands, and database operations, see **[docs/GETTING_STARTED.md](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](docs/ADVANCED.md)**.
|
||
|
||
|
||
---
|
||
|
||
|
||
## Script Reference
|
||
|
||
For comprehensive documentation of all deployment scripts, management commands, and automation tools, see **[docs/SCRIPTS.md](docs/SCRIPTS.md)**.
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
For diagnostic procedures, common issues, and backup system documentation, see **[docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)**.
|
||
|
||
---
|
||
|
||
## Credits & Next Steps
|
||
|
||
### Project Credits
|
||
|
||
This project builds upon:
|
||
- **[AzerothCore](https://github.com/azerothcore/azerothcore-wotlk)** - Core server application
|
||
- **[AzerothCore Module Community](https://github.com/azerothcore)** - 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:**
|
||
1. **Create admin account**: `docker attach ac-worldserver` → `account create admin password` → `account 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](docs/GETTING_STARTED.md).**
|