mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 00:58:34 +00:00
338 lines
8.5 KiB
Markdown
338 lines
8.5 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
git clone https://github.com/uprightbass360/AzerothCore-RealmMaster.git
|
|
cd AzerothCore-RealmMaster
|
|
```
|
|
|
|
### 2. Create Configuration File
|
|
|
|
```bash
|
|
# Copy the pre-built images template
|
|
cp .env.prebuilt .env
|
|
```
|
|
|
|
### 3. Configure Docker Hub Username
|
|
|
|
Edit `.env` and set your Docker Hub username:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
./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 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:
|
|
|
|
```bash
|
|
# 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`:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
./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:
|
|
|
|
```bash
|
|
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
|
|
|
|
1. Attach to the worldserver container:
|
|
|
|
```bash
|
|
docker attach ac-worldserver
|
|
```
|
|
|
|
2. Create an account and set GM level:
|
|
|
|
```
|
|
account create admin password
|
|
account set gmlevel admin 3 -1
|
|
```
|
|
|
|
3. 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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](DATABASE_MANAGEMENT.md) - Backups, restores, migrations
|
|
- [Getting Started Guide](GETTING_STARTED.md) - Detailed walkthrough
|
|
- [Troubleshooting](TROUBLESHOOTING.md) - Common issues and solutions
|
|
- [Module Catalog](MODULES.md) - Complete list of available modules
|