Jump to content
  • We are looking for staff for the Wiki area!
    If interested please
    click here and select "Documentation Team"

  • Installing MaNGOS on Ubuntu 18.04 LTS (LXD container)


    With LXD you can easy take snapshots and move your server to another physical machine.

    Guide is fully tested on it MaNGOS Zero with bots module enabled.

    If you do not want to use LXD, simple pass LXD instruction and go further.

    Let's start

    LXD installation & configuration:

    sudo apt install lxd && reboot

    Reboot is needed for reloading groups that will be assigned to your account.

    sudo lxd init

    with above command anserw Y to all questions.

    Create container for our server:

    lxc launch ubuntu:bionic mangos-zero

    check if your container is running:

    lxc list
    |   NAME      |  STATE  |         IPV4          |                     IPV6                      |    TYPE    | SNAPSHOTS |
    | mangos-zero | RUNNING | *.*.*.* (eth1)        |                                               | PERSISTENT | 3         |

    now we will connect to our container:

    lxc exec mangos-zero bash

    Please verify that you are on your contierner, you should have promt like this

    [email protected]:~#

    if not you must try again with previous command providing your container name.

    MaNGOS server installation

    Install necessary packages:

    apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev libace-6.4.5 libace-dev mysql-server

    We need also install additional mysql package. I've attached file in this post so you don't need to search it.

    Download this file and send to your container. Open another terminal window and type:

    lxc file push /DOWNLOADED_DIRECTORY/mysql-apt-config_0.8.14-1_all.deb mangos-zero/root/

    Go back to first terminal where you are logged to your container and type:

    dpkg -i /root/mysql-apt-config_0.8.14-1_all.deb

    on installation window check mysql 5.7 is selected and hit Enter, when window will close type:

    apt update && apt full-upgrade -y

    When all packages are installed, secure your mysql installation.

    Please type and anserw to few questions to secure your mysql server.


    Create new username and password to access our mysql server:

    GRANT ALL ON *.* to '[email protected]'localhost' IDENTIFIED BY 'set_database_password';

    Getting MaNGOS source code, compile and configuration.

    We will create new folder for sources:

    mkdir /opt/mangos && cd /opt/mangos

    Now we will download server and database sources to created folder.

    MaNGOS zero source (if you want different mangos version please change mangoszero to different repo name):

    git clone https://github.com/mangoszero/server.git --recursive --depth 1

    Database files:

    git clone https://github.com/mangoszero/database.git --recursive --depth 1

    Compiling MaNGOS (if your CPU have less than 4cores change -j4 to -j2 for two core CPU):

    cd server && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/bin/mangos && make -j4 && make install

    above command will create build folder, compile and install compiled server.

    Database installation:

    cd /opt/mangos/database && chmod -R +x *.sh && ./InstallDatabases.sh

    above command will fix script permissions and install your database.

    GameData files extraction:

    This can me done inside or outside the container, choice is yours how you do it. Remember that extraction take some time, so go take a cup of tea/coffe and cookie and wait. (ETA 1-2h)

    We need proper files for exctraction, go to your mangos installation and copy those files to yor game client:

    cd /usr/local/bin/mangos/bin/ && chmod -R +x *.sh && cp -av tools/* ExtractResources.sh MoveMapGen.sh mmap_excluded.txt offmesh.txt /GAME_CLIENT_DESTINATION

    now go to your game client and run:


    Server configuration:

    First we have to fix path to MaNGOS configruation. We can do this in config files or simply creating a symlink. In this tutorial we will create symlink to keep defaults.

    cd /usr/local/bin/mangos/ && ln -s ../etc

    Now we have to copy config files:

    cd etc/ && cp -av mangosd.conf.dist mangosd.conf && cp -av realmd.conf.dist realmd.conf

    In realmd.conf find "LoginDatabaseInfo" and change database username and password to credentials we created before.

    In mangosd.conf find "LoginDatabaseInfo", "WorldDatabaseInfo", "CharacterDatabaseInfo" and change database username and password to credentials we created before.

    Systemd configuration:

    Create systemd configuration to autostart your realmd and mangosd. In LXD I recommend to run mangosd in screen, we prepare such a configuration in this tutorial.

    Realmd service:

    cat > /etc/systemd/system/realmd.service <<EOF
    Description=MangosZ server
    After=network.target mysql.service
    ExecStart=/usr/local/bin/mangos/bin/realmd -c /usr/local/bin/mangos/etc/realmd.conf

    Mangosd service:

    cat > /etc/systemd/system/mangosd.service <<EOF
    Description=MangosZ server
    After=network.target mysql.service
    #ExecStart=/usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf
    ExecStart=/usr/bin/screen -mdS mangosd /usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf

    Reload systemd with:

    systemctl daemon-reload

    Enable services for autostart:

    systemctl enable realmd
    systemctl enable mangosd

    Start services:

    systemctl start realmd
    systemctl start mangosd

    Checking status of running services:

    systemctl status realmd
    systemctl status mangosd

    If you want to attach to mangosd console, simply type:

    screen -r mangosd

    to detach mangosd screen press keyboard combination:


    Update IP address in database, so you can connect to your server:

    mysql realmd -h localhost -u mangos -p

    check your values in realmlist table

    select address,localAddress from realmlist;
    | address       | localAddress  |
    | | |

    then update address and localAddress values with two query (replace IP_ADDRESS with yours)

    update realmlist set address='IP_ADDRESS';
    update realmlist set localAddress='IP_ADDRESS';

    Last thing is to restart both services and try to connect.

    At the end I wan't to share with you LXD container image, I made this tutorial based on it. Container do not include GameData so you have to extract it by yourself.

    MaNGOS-Zero LXD container based on Ubuntu 18.04

    How to use it? Download the file and type in terminal (you must have LXD)

    lxc image import mangoszero-serv.tar.gz --alias mangosz-img
    lxc launch mangosz-img mangos-zero


    User Feedback

    Recommended Comments

    This is exactly what i need to get an istallation on my Ubuntu server.. only one thing  you gloss over the LXD parts without any detailed installation guides. sadly i am new to LXD and i am getting promted with guestions your guide tells me to answer yes to the leads on to things that i am utterly unably to (due to my own ignorance i admit) finish. 

    id love to run my lil test server in an Linix env for the very usability you state but alass i cant figure out how to use it. :(

    other than that Exellent guide i am shure ill get it to work without LXD.

    Share this comment

    Link to comment
    Share on other sites

    LXD installation is very simple, believe me :)

    Better to use LXD, why? because you do not mess at your host system. But ofcourse you can use this guide to setup on your Ubuntu host.

    Share this comment

    Link to comment
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions


The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
  • Create New...