Skip to content

Repository files navigation

CMaNGOS powered by Docker

A collection of Docker images for the CMaNGOS project variants.

Supported Variants and Clients

  • World of Warcraft 1.12.1 (5875) used with cmangos-classic
  • World of Warcraft - The Burning Crusade 2.4.3 (8606) used with cmangos-tbc
  • World of Warcraft - Wrath of the Lich King 3.3.5 (12340) used with cmangos-wotlk

Quick Start Guide

Create a directory on your machine to store everything:

mkdir ~/cmangos-docker && cd ~/cmangos-docker

Copy one of the pre-configured docker-compose files onto your machine for the variant you want to run.

If you want cmangos-classic:

wget -O docker-compose.yml https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/docker-compose.classic.yml

If you want cmangos-tbc:

wget -O docker-compose.yml https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/docker-compose.tbc.yml

If you want cmangos-wotlk:

wget -O docker-compose.yml https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/docker-compose.wotlk.yml

Place the extracted client data files (Cameras, dbc, maps, mmaps, vmaps) into a volume or folder which will be mapped into a container.

~/cmangos-docker/extracted-data
├─ Cameras
├─ dbc
├─ maps
├─ mmaps
└─ vmaps

Run docker-compose up to start your server!

Update your World of Warcraft client's realmlist.wtf file to point to your localhost IP address.

set realmlist 127.0.0.1

Login with your client using the default username:password combos (unless ACCOUNTS is set, in which case these are replaced by your configured accounts):

ADMINISTRATOR:ADMINISTRATOR
GAMEMASTER:GAMEMASTER
MODERATOR:MODERATOR
PLAYER:PLAYER

You are now running local server for the core variant you chose with the latest full content database.

Extracting client data

Using the cmangos-extractors-variant container of your chosen core variant, extract the required client data like this:

docker run \
	-v "/path/to/WoW/client:/client" \
	-v "/home/$USER/cmangos-docker/extracted-data:/maps" \
	ghcr.io/jrtashjian/cmangos-docker/extractors-classic

Creating accounts

Automated (env var)

Set the ACCOUNTS variable in your .env file. When present, the four default seed accounts (ADMINISTRATOR, GAMEMASTER, MODERATOR, PLAYER) are removed and replaced with the accounts you define. Expansion is derived automatically from CORE_VARIANT.

# Format: username:password[:gmlevel],...
# username: letters/digits only; gmlevel: 0=PLAYER, 1=MODERATOR, 2=GAMEMASTER, 3=ADMINISTRATOR
ACCOUNTS=admin:changeme:3,player:changeme

Accounts are upserted each time realmd starts. Default seed accounts not listed in ACCOUNTS are removed.

Manual (console)

Ensure the database and realmd services are running:

docker compose up database realmd

Start the mangosd server with console access enabled:

docker compose run --rm -e MANGOSD_CONSOLE_ENABLE=1 mangosd

In the mangosd console, create a new user account (replace username and password with your desired credentials):

account create username password

For more details, see the official instructions.

Credits

Thanks to @korhaldragonir which this project was heavily inspired by their own.
Thanks to @vishnubob and contributors for the wait-for-it.sh script.
Thanks to CMaNGOS Community.

Packages

Used by

Contributors

Languages