Setting up a WoW private server

1. Introduction

This guides provides a walkthrough on how to set up a World of Warcraft private server with Ubuntu Server 20.04.2 and CMaNGOS (Continued Massive Network Game Object Server). CMaNGOS is a project dedicated to provide educational insight and understanding in how game servers work. They also provide resources to emulate a original World of Warcraft experience.

2. Prerequisites

To follow and complete this guide we’re gonna need a few things.

A (virtual) machine with at least:

  • 1 (one) CPU-core
  • 2GB of RAM
  • About 25GB of disk space
  • A connection to the internet (duh)

Please keep in mind that this is the bare minimum on which I made it work, I don’t know if it will work on any other system running these specs due to system load and other variables.

DigitalOcean has very fast and cheap VPS’s if you don’t have a machine ready at home. You can use my referral link for a free $100 credit on a new account. This should be enough to run your server for at least 6 months.

Contabo also has very fast and cheap VPS’s, I mostly use Contabo for personal use and hobbying. You’ll have a 4 core, 8GB RAM VPS for €5 per month. Heckin’ cheap!

See my other post on Creating a droplet on DigitalOcean for a WoW private server on how to create a droplet optimal for running a simple World of Warcraft private server.

Furthermore, you need the following software:

The Ubuntu Server 20.04.2 ISO (not needed if you created a droplet on DigitalOcean or a VPS at Contabo). You can download it via a torrent or direct download.

A working World of Warcraft 1.12 (Vanilla), a 2.4.3 (TBC) client or a 3.3.5 (WoTLK) client, depending on the server version you want to run. There are several ways to get your hands on one of these clients. I’ll link them here below. Please make sure to use a VPN when downloading one of the clients to avoid copyright infringement claims from your ISP.

If any of the above links is down please let me know in the comments and I’ll see if I can find a new link.

3. Setting up Ubuntu Server

When we have all the prerequisite ready, we can begin setting up the Ubuntu Server. There’s multiple ways you can set up the Ubuntu Server.

If you want to play solo a virtual machine might be a good solution. Follow my guide on Creating a virtual machine with Ubuntu Server to set up Ubuntu Server on a virtual machine.

If you have a Raspberry Pi handy, that would work too. I will work on a guide to install Ubuntu Server on a Raspberry Pi later and add it to this guide. For now, you can check out this page.

If you have followed my guide on Creating a droplet on DigitalOcean for a WoW private server however, you can skip this step and go straight to chapter 4.

4. Setting up CMaNGOS

With the base Ubuntu Server system set up, we can start on building the World of Warcraft server with CMaNGOS.

Open up a PuTTY (or your favourite SSH-client) terminal, enter the IP address of your machine and log in as root (use your private key if you followed the DigitalOcean droplet guide).

4.1 Preparations

First of all, check if all your current system packages are up-to-date with the following command:

sudo apt update && sudo apt upgrade

Install all the necessary packages for CMaNGOS with the following command:

sudo apt-get install build-essential gcc g++ automake git-core autoconf make patch libmysql++-dev mysql-server libtool libssl-dev grep binutils zlibc libc6 libbz2-dev cmake subversion libboost-all-dev

After installing it’s a good idea to secure the freshly installed MySQL installation as we will need it further in this guide. You can secure the MySQL installation with the following command:

mysql_secure_installation

Third, create a new user to run the server under. It’s never good practice to run stuff under root so that’s why we create a new user to run the server under.

useradd -m -d /home/mangos -c "MaNGOS" -U mangos

After creating the new user, switch to the new users home directory.

cd /home/mangos

4.2 Downloading the CMaNGOS resources

Now that the Ubuntu Server is fully prepared, we can start to download the necessary resources to run the server. This is where CMaNGOS comes in to play.

Depending on which expansion you want the server to run, use one of the following commands to clone CMaNGOS to the new users directory:

Classic (Vanilla):

git clone git://github.com/cmangos/mangos-classic.git mangos

The Burning Crusade:

git clone git://github.com/cmangos/mangos-tbc.git mangos

Wrath of the Lich King:

git clone git://github.com/cmangos/mangos-wotlk.git mangos

If everything went well you will see the following confirmation:

Cloning into 'mangos'...
remote: Enumerating objects: 156120, done.
remote: Counting objects: 100% (710/710), done.
remote: Compressing objects: 100% (276/276), done.
remote: Total 156120 (delta 463), reused 663 (delta 433), pack-reused 155410
Receiving objects: 100% (156120/156120), 148.72 MiB | 5.54 MiB/s, done.
Resolving deltas: 100% (129090/129090), done.

4.3 Downloading the CMaNGOS database resources

In order to get the required resources for the database you run one of the following commands, depending on the version you want to run.

Classic (Vanilla):

git clone git://github.com/cmangos/classic-db.git

The Burning Crusade:

git clone git://github.com/cmangos/tbc-db.git

Wrath of the Lich King:

git clone git://github.com/cmangos/wotlk-db.git

If all went well, you should see the following confirmation:

Cloning into 'wotlk-db'...
remote: Enumerating objects: 32862, done.
remote: Counting objects: 100% (2864/2864), done.
remote: Compressing objects: 100% (1104/1104), done.
remote: Total 32862 (delta 1899), reused 2467 (delta 1752), pack-reused 29998
Receiving objects: 100% (32862/32862), 611.03 MiB | 29.84 MiB/s, done.
Resolving deltas: 100% (21290/21290), done.

Sources used for this post:

https://github.com/cmangos/issues/wiki/Installation-Instructions

1 reply
  1. BS
    BS says:

    Do you need to run a separate server for each expansion or can I install them all at once on same server? I can create as many VM’s as needed, but just not sure if I need to create a new VM for each expansion. Thanks.

    Reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.