Files
AzerothCore-RealmMaster/docs/PREBUILT_IMAGES.md
2026-01-09 18:18:11 -05:00

8.5 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:
DOCKERHUB_USERNAME=your-dockerhub-username

# To (example):
DOCKERHUB_USERNAME=uprightbass360

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_BOTS and PLAYERBOT_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:

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 available profiles (if built):

  • :authserver-suggested-modules-latest - Suggested modules profile
  • :authserver-all-modules-latest - All modules profile
  • :authserver-playerbots-only-latest - Playerbots only

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

Post-Installation

Create Admin Account

  1. Attach to the worldserver container:
docker attach ac-worldserver
  1. Create an account and set GM level:
account create admin password
account set gmlevel admin 3 -1
  1. Detach: Press Ctrl+P then Ctrl+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:

  1. Verify DOCKERHUB_USERNAME is set correctly in .env
  2. Check that the images exist at: https://hub.docker.com/u/your-username
  3. 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:

  1. Increase MySQL tmpfs size in .env: MYSQL_RUNTIME_TMPFS_SIZE=16G
  2. Reduce playerbot population: PLAYERBOT_MAX_BOTS=100
  3. Check system resources: docker stats

Advanced Configuration

Custom Module Selection

Pre-built images include all RealmMaster modules. To disable specific modules:

  1. Edit server configuration files in storage/config/
  2. Set module enable flags to 0
  3. 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

Next Steps