Replaced heredocs with echo statements to avoid YAML parsing issues.
The YAML parser was interpreting markdown headings and other content
within heredocs as YAML syntax, causing validation errors.
Using grouped echo statements ({ echo ...; } > file) works correctly
with GitHub Actions YAML parser while maintaining variable expansion.
Also updated documentation to use generic placeholder (your-dockerhub-username)
in examples instead of hardcoded username.
8.7 KiB
Deploying Pre-Built RealmMaster Images
This guide explains how to deploy AzerothCore RealmMaster using pre-built Docker images from Docker Hub. No local building required!
What's Included in Pre-Built Images
The pre-built images are automatically built nightly with the RealmMaster module profile, which includes 32 carefully selected modules:
- MODULE_PLAYERBOTS - AI-controlled player characters
- MODULE_TRANSMOG - Transmogrification system
- MODULE_SOLO_LFG - Solo dungeon finder
- MODULE_ELUNA - Lua scripting engine
- MODULE_AIO - All-in-one interface
- MODULE_NPC_BUFFER - Buff NPC
- MODULE_NPC_BEASTMASTER - Pet management
- MODULE_SOLOCRAFT - Solo dungeon scaling
- MODULE_1V1_ARENA - 1v1 arena system
- MODULE_ACCOUNT_ACHIEVEMENTS - Account-wide achievements
- ...and 22 more modules!
See config/module-profiles/RealmMaster.json for the complete list.
Prerequisites
- Docker with Docker Compose v2
- 16GB+ RAM
- 64GB+ storage
- Linux/macOS/WSL2
Quick Start
1. Clone the Repository
git clone https://github.com/uprightbass360/AzerothCore-RealmMaster.git
cd AzerothCore-RealmMaster
2. Create Configuration File
# Copy the pre-built images template
cp .env.prebuilt .env
3. Configure Docker Hub Username
Edit .env and set your Docker Hub username:
# Change this line to your Docker Hub username:
DOCKERHUB_USERNAME=your-dockerhub-username
4. Optional: Customize Settings
Edit .env to customize:
- Server address:
SERVER_ADDRESS=your-server-ip - Passwords:
MYSQL_ROOT_PASSWORD=your-password - Playerbot population:
PLAYERBOT_MIN_BOTSandPLAYERBOT_MAX_BOTS - Server preset:
SERVER_CONFIG_PRESET=fast-leveling(or blizzlike, hardcore-pvp, casual-pve)
5. Deploy
./deploy.sh
The deployment will:
- Pull pre-built images from Docker Hub
- Set up MySQL database with all module SQL
- Configure client data
- Start all services
First deployment takes 30-60 minutes for database setup and client data download.
Image Tags
The CI/CD workflow publishes images with profile-specific tags so you know exactly which modules are included:
Profile-Tagged Images (Recommended)
Each module profile gets its own tag:
:authserver-realmmaster-latest- RealmMaster profile (32 modules):worldserver-realmmaster-latest- RealmMaster profile (32 modules):authserver-realmmaster-YYYYMMDD- Date-tagged RealmMaster builds:worldserver-realmmaster-YYYYMMDD- Date-tagged RealmMaster builds
Other profiles (available when built via GitHub Actions):
:authserver-suggested-modules-latest- Suggested modules profile (not yet published):authserver-all-modules-latest- All modules profile (not yet published):authserver-playerbots-only-latest- Playerbots only (not yet published)
Note: Currently only the RealmMaster profile is built nightly. Other profiles can be built on-demand by manually triggering the CI/CD workflow.
Generic Tags (Backward Compatibility)
:authserver-latest- Latest build (defaults to RealmMaster profile):worldserver-latest- Latest build (defaults to RealmMaster profile)
Choosing a Profile
In .env.prebuilt, set the MODULE_PROFILE variable:
# Choose your profile
MODULE_PROFILE=realmmaster # 32 modules (default, recommended)
# MODULE_PROFILE=suggested-modules # Alternative module set
# MODULE_PROFILE=all-modules # All supported modules
# MODULE_PROFILE=playerbots-only # Just playerbots
# Images automatically reference the selected profile
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
Using Date-Tagged Images
To pin to a specific build date, edit .env:
# Set your profile
MODULE_PROFILE=realmmaster
# Pin to a specific date (example: January 9, 2026)
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
Differences from Local Build
What You DON'T Need
When using pre-built images, you skip:
- ❌ Running
./setup.sh(module selection) - ❌ Running
./build.sh(compilation) - ❌ 15-45 minute build time
- ❌ Build dependencies (Go compiler, etc.)
What's the Same
Everything else works identically:
- ✅ Database setup and migrations
- ✅ Module SQL installation
- ✅ Configuration management
- ✅ Backup system
- ✅ All management commands
- ✅ phpMyAdmin and Keira3 tools
Verifying Your Deployment
After deployment completes:
1. Check Container Status
./status.sh
You should see all services running:
- ✅ ac-mysql
- ✅ ac-authserver
- ✅ ac-worldserver
- ✅ ac-phpmyadmin
- ✅ ac-keira3
2. Verify Modules Are Loaded
Check the worldserver logs:
docker logs ac-worldserver | grep "module"
You should see messages about 32 modules being loaded.
3. Access Management Tools
- phpMyAdmin: http://localhost:8081
- Keira3: http://localhost:4201
Post-Installation
Create Admin Account
- Attach to the worldserver container:
docker attach ac-worldserver
- Create an account and set GM level:
account create admin password
account set gmlevel admin 3 -1
- Detach: Press
Ctrl+PthenCtrl+Q
Configure Client
Edit your WoW 3.3.5a client's realmlist.wtf:
set realmlist 127.0.0.1
(Replace 127.0.0.1 with your server's IP if remote)
Updating to Latest Images
To update to the latest nightly build:
# Pull latest images
docker compose pull
# Restart services
docker compose down
docker compose up -d
Note: Database schema updates will be applied automatically on restart.
Switching Between Pre-Built and Local Build
From Pre-Built to Local Build
If you want to customize modules and build locally:
# Remove pre-built .env
rm .env
# Run interactive setup
./setup.sh
# Build with your custom modules
./build.sh
# Deploy
./deploy.sh
From Local Build to Pre-Built
If you want to use pre-built images instead:
# Back up your current .env
mv .env .env.custom
# Use pre-built configuration
cp .env.prebuilt .env
# Edit DOCKERHUB_USERNAME in .env
# Deploy
./deploy.sh
Troubleshooting
Image Pull Errors
Problem: Error response from daemon: manifest not found
Solutions:
- Verify
DOCKERHUB_USERNAMEis set correctly in.env - Check that the images exist at: https://hub.docker.com/u/your-username
- Ensure the CI/CD workflow has run successfully
Module SQL Not Applied
Problem: Modules don't seem to be working
Solution: The module SQL is automatically applied during deployment. Check:
# Verify module SQL staging
ls -la storage/module-sql-updates/
# Check database for module tables
docker exec -it ac-mysql mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "SHOW TABLES" acore_world | grep -i module
Performance Issues
Problem: Server is slow or laggy
Solutions:
- Increase MySQL tmpfs size in
.env:MYSQL_RUNTIME_TMPFS_SIZE=16G - Reduce playerbot population:
PLAYERBOT_MAX_BOTS=100 - Check system resources:
docker stats
Advanced Configuration
Custom Module Selection
Pre-built images include all RealmMaster modules. To disable specific modules:
- Edit server configuration files in
storage/config/ - Set module enable flags to 0
- Restart worldserver:
docker compose restart ac-worldserver
Note: You can only disable modules, not add new ones (requires local build).
Server Configuration Presets
Apply configuration presets for different server types:
# In .env, set one of these presets:
SERVER_CONFIG_PRESET=blizzlike # Authentic WotLK experience (1x rates)
SERVER_CONFIG_PRESET=fast-leveling # 3x XP rates, QoL improvements
SERVER_CONFIG_PRESET=hardcore-pvp # Competitive PvP (1.5x rates)
SERVER_CONFIG_PRESET=casual-pve # Relaxed PvE (2x rates)
Restart after changing: docker compose restart ac-worldserver
Getting Help
- Documentation: See other guides in
docs/ - GitHub Issues: https://github.com/uprightbass360/AzerothCore-RealmMaster/issues
- AzerothCore Discord: https://discord.gg/gkt4y2x
Next Steps
- Database Management - Backups, restores, migrations
- Getting Started Guide - Detailed walkthrough
- Troubleshooting - Common issues and solutions
- Module Catalog - Complete list of available modules