It has been 13 years since World of Warcraft emulation servers were created.
Ever since the servers were widely adopted from the Open Source release of MaNGOS in 2005, there have been rumors spreading about how difficult it is to run a server.
Today, I’d like to end this rumor and present a new idea.
A different approach
Since we were working on WoWStack anyway, I felt it was a good idea to change a few elements that would make everything much easier to use. For example, I introduced Docker to the system.
With Docker, you will no longer need to install loads of dependencies or be familiar with compilers and manual installations, nor will you need to face the recurring tasks of keeping everything up to date and runing.
OpenWoW, the research effort of WowStack is proud to present Vanilla WoW in Docker. As of today, you can run a fully working Vanilla WoW server environment by just having Docker installed on a server — be it Linux, Windows or Mac OS. You choose!
The entire environment is composed of various images for data extraction from the client and images for authentication and the actual gam world.
Hop to https://github.com/wowstack/docker-classic-server to grab and copy and play around with it.
Running Vanilla WoW in Docker
First, make sure you have Docker and Docker Compose installed and running on your machine. You will also need an installation of Vanilla WoW version 1.12.x. For now it does not really matter if you use 1.12.0, 1.12.1 or 1.12.2 as each of these will work.
Clone the repository locally:
git clone https://github.com/wowstack/docker-classic-server.git
Since the project is still in early stages we now have to make a few changes.
Take a look at
version: '3.1' services: ... map_extractors: image: wowstack/map-tools:latest ... volumes: - "./path/to/wow/client:/opt/wowstack/data/" - "./data/wowstack:/opt/wowstack/share" world_server: image: wowstack/world-server:latest ... volumes: - "./data/wowstack:/opt/wowstack/share" ...
As you can see, the
map_extractors service has two volumes getting mounted by
"./path/to/wow/client:/opt/wowstack/data/": this is used to mount a Vanilla WoW installation into the container, allowing the extractors to read from the clients MPQ archives. Specify the full path to the
World of Warcraftfolder
"./data/wowstack:/opt/wowstack/share": this is a local directory which will be used to store extracted data and generated files. For instance, maps will live here
world_server service we meet an old friend:
"./data/wowstack:/opt/wowstack/share": here we mount generated files for the world server, allowing it to read maps, client databases, etc.
To get your Vanilla WoW environment up and running we start off by pulling the current container images:
Note that these images are currently updated daily currently and unversioned for now, so you have to pull these images/tags:
For storing game content and characters data we use
Starting the environment is just one single command:
docker-compose up -d
You can watch what is going on using
docker-compose logs or tools like Kitematic.
Be aware that initial startup time can take up to two hours for generating
all maps. After this your Vanilla WoW installation will be listening on
To destroy all things execute