It has been 13 years since World of Warcraft emulation servers became a thing, and widely adopted due to the Open Source release of MaNGOS in early 2005. Ever since rumors have been going around how bad and how hard it is to run a server.
Today we are going to change this for the better.
A different approach
While work on WowStack continued, it seemed like a good idea to introduce change and make everything much easier to use. This is where Docker joins the picture.
No longer will you need to install loads of dependencies, be familiar with compilers and manual software installation and face the recurring task of keeping it all up to date and running.
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 whole 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 with it.
Running Vanilla WoW in Docker
First, make sure you have Docker and Docker Compose installed in your machine and running. Aside from that, 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 exxtracted data and generated files. E.g. 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:
Be aware that these images are 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