| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A collection of Docker images and compose files for running CMaNGOS locally.
| Client | Build | Core |
|---|---|---|
| World of Warcraft | 1.12.1 (5875) | cmangos-classic |
| The Burning Crusade | 2.4.3 (8606) | cmangos-tbc |
| Wrath of the Lich King | 3.3.5 (12340) | cmangos-wotlk |
Images are published to ghcr.io/jrtashjian. Replace <core> with classic, tbc, or wotlk.
Every image is also tagged with a build date (YYYY.MM.DD) so you can pin a known release instead of tracking latest.
| Image | Tag | What you get |
|---|---|---|
| cmangos-realmd-<core> | latest | Login server |
| cmangos-extractors-<core> | latest | Client data extractors |
| cmangos-mangosd-<core> | latest | World server (default build) |
| with-ahbot | World server + auction house bot | |
| with-playerbot | World server + playerbots | |
| with-playerbot-ahbot | World server + both bots |
Examples:
ghcr.io/jrtashjian/cmangos-mangosd-classic:latest ghcr.io/jrtashjian/cmangos-mangosd-classic:with-playerbot ghcr.io/jrtashjian/cmangos-mangosd-classic:2026.08.05-with-ahbot
To use a bot-enabled world server with compose, change the mangosd image tag in your docker-compose.yml.
mkdir ~/cmangos-docker && cd ~/cmangos-dockerThis directory will hold your compose file and extracted client data.
Pick the core that matches your WoW client.
If you want classic:
wget -O docker-compose.yml https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/docker-compose.classic.ymlIf you want TBC:
wget -O docker-compose.yml https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/docker-compose.tbc.ymlIf you want WotLK:
wget -O docker-compose.yml https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/docker-compose.wotlk.ymlCMaNGOS needs data extracted from a real WoW client (Cameras, dbc, maps, mmaps, vmaps). Run the extractors image once, pointing it at your client install and an output folder.
Replace classic with tbc or wotlk if needed, and update the client path:
docker run --rm \
-v "/path/to/WoW/client:/client" \
-v "$HOME/cmangos-docker/extracted-data:/maps" \
ghcr.io/jrtashjian/cmangos-extractors-classic:latestWhen finished you should have:
~/cmangos-docker/extracted-data ├─ Cameras ├─ dbc ├─ maps ├─ mmaps └─ vmaps
The compose files mount ./extracted-data into the world server automatically.
docker compose up -dThis starts MariaDB, the login server (realmd), and the world server (mangosd). On first boot, mangosd installs the latest full content database — that can take a while.
Check progress with:
docker compose logs -f mangosdEdit your WoW client's realmlist.wtf:
set realmlist 127.0.0.1
Default accounts (unless you configure ACCOUNTS):
ADMINISTRATOR:ADMINISTRATOR GAMEMASTER:GAMEMASTER MODERATOR:MODERATOR PLAYER:PLAYER
For custom configuration, use the example compose file with a .env:
mkdir ~/cmangos-docker && cd ~/cmangos-docker
wget -O docker-compose.yml https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/docker-compose.example.yml
wget -O .env https://raw.githubusercontent.com/jrtashjian/cmangos-docker/master/.env.exampleEdit .env — at minimum set CORE_VARIANT (classic, tbc, or wotlk). Other options cover database credentials, separate DB hosts, accounts, and server settings.
Extract client data into ./extracted-data (same as quick start), then:
docker compose up -dTo use a bot-enabled mangosd image, change the image tag in docker-compose.yml (for example :with-playerbot).
Create a .env file next to docker-compose.yml and set ACCOUNTS. When present, the four default seed accounts are removed and replaced with the ones you define:
# Format: username:password[:gmlevel],...
# username: letters and digits only
# gmlevel: 0=PLAYER, 1=MODERATOR, 2=GAMEMASTER, 3=ADMINISTRATOR
ACCOUNTS=admin:changeme:3,player:changemeAccounts are created or updated each time realmd starts.
Start the database and login server, then open a mangosd console:
docker compose up -d database realmd
docker compose run --rm -e MANGOSD_CONSOLE_ENABLE=1 mangosdIn the console:
account create username password
For more detail, see the official CMaNGOS instructions.
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.
| Back | FazBrowse Home | New Git URL |