This page covers basic operation and updating for an AzerothCore (WotLK) server on Ubuntu. It assumes your database and other prerequisite services are already installed and running. For full installation and configuration documentation, see azerothcore.org.
Getting started: Connect to the server using SSH (PuTTY on Windows is fine). Log in with a sudo-privileged account. If the server is running, stop authserver and worldserver before updating.
What are these services? AzerothCore runs two processes: authserver (login/authentication) and worldserver (the game world). If either is stopped, players will not be able to log in or play.
Note: The commands below assume you have systemd/service entries named ac-authserver and ac-worldserver. If your service names differ (or you run the binaries manually), adjust accordingly.
sudo service ac-authserver start
sudo service ac-authserver stop
sudo service ac-authserver restart
sudo service ac-worldserver start
sudo service ac-worldserver stop
sudo service ac-worldserver restart
su - azeroth
sudo service ac-worldserver stop
sudo service ac-authserver stop
Stop worldserver first, then authserver, to ensure active sessions shut down cleanly.
cd /home/azeroth/azerothcore-wotlk/
This is the folder containing the AzerothCore source code.
git pull origin main
This pulls the latest changes from the AzerothCore repository.
cd modules/
cd mod-solo-lfg/ && git pull && cd ../
cd mod-better-item-reloading/ && git pull && cd ../
cd mod-eluna/ && git pull && cd ../
cd mod-ah-bot/ && git pull && cd ../
cd ../
Modules are maintained separately. If a module falls behind, it may break the build until it is updated or removed.
cd build/
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static
This configures the build and sets the install destination (where the updated binaries will be installed).
make -j 11 && make install
This compiles and then installs the updated server binaries. The number 11 here represents the total available processor cores of the system minus one. You can use nproc --all to determine the number of cores available on your system.
sudo service ac-authserver start
sudo service ac-worldserver start
Start authserver first, then worldserver.
Optional: Run the entire update in one block.
sudo service ac-worldserver stop sudo service ac-authserver stop cd /home/azeroth/azerothcore-wotlk/ && \ git checkout master && \ git pull && \ cd modules/ && \ ( cd mod-solo-lfg && git pull ) && \ ( cd mod-better-item-reloading && git pull ) && \ ( cd mod-eluna && git pull ) && \ ( cd mod-ah-bot && git pull ) && \ cd .. && \ cd build/ && \ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static && \ make -j"$(nproc)" && \ make install sudo service ac-authserver start sudo service ac-worldserver start
Note: If the build fails, read the error output carefully. If your source tree is in a bad state (merge conflicts, broken build directory, etc.), use “Force Updating the Server” below.
Note: Use this only if a regular update fails and you want to start from a clean source checkout.
sudo service ac-worldserver stop
sudo service ac-authserver stop
Stop worldserver first, then authserver.
sudo mkdir -p /home/azeroth/backup/ac-$(date +%F)
sudo cp -a /home/azeroth/azerothcore-wotlk/env/dist/etc /home/azeroth/backup/ac-$(date +%F)/
sudo cp -a /home/azeroth/azerothcore-wotlk/env/dist/bin/lua_scripts /home/azeroth/backup/ac-$(date +%F)/ 2>/dev/null || true
sudo cp -a /home/azeroth/azerothcore-wotlk/env/dist/bin/scripts /home/azeroth/backup/ac-$(date +%F)/ 2>/dev/null || true
This creates a dated backup folder and copies your current server configuration (env/dist/etc) and any Lua/script folders if present. After the rebuild, restore files as needed (for example, re-copy your worldserver.conf, authserver.conf, and custom Lua/scripts back into the new install).
rm -r -f /home/azeroth/azerothcore-wotlk/
This removes the existing source code folder so you can clone a fresh copy.
git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch /home/azeroth/azerothcore-wotlk/
This downloads a fresh copy of the AzerothCore source code.
cd /home/azeroth/azerothcore-wotlk/
mkdir -p build
cd modules/
git clone https://github.com/azerothcore/mod-solo-lfg.git
git clone https://github.com/azerothcore/mod-better-item-reloading.git
git clone https://github.com/azerothcore/mod-eluna.git
git clone https://github.com/azerothcore/mod-ah-bot.git
Because the source directory was deleted, modules must be cloned again (or restored from backup).
cd ../build
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static
This configures the build and sets the install destination.
make -j 11 install
This builds and installs the server. If it succeeds, start the services.
sudo service ac-authserver start
sudo service ac-worldserver start
Optional: Run the entire forced update in one block.
sudo service ac-worldserver stop sudo service ac-authserver stop rm -rf /home/azeroth/azerothcore-wotlk/ && \ git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch /home/azeroth/azerothcore-wotlk/ && \ cd /home/azeroth/azerothcore-wotlk/ && \ mkdir -p build && \ cd modules/ && \ git clone https://github.com/azerothcore/mod-solo-lfg.git && \ git clone https://github.com/azerothcore/mod-better-item-reloading.git && \ git clone https://github.com/azerothcore/mod-eluna.git && \ git clone https://github.com/azerothcore/mod-ah-bot.git && \ cd ../build && \ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static && \ make -j"$(nproc)" && \ make install sudo service ac-authserver start sudo service ac-worldserver start
The server requires map/client data (dbc/maps/vmaps/mmaps). If AzerothCore changes how it reads data, you may need to refresh your data. The easiest approach is to download the latest prebuilt data from the client-data releases repository.
cd ~/server && rm -rf data/ && mkdir -p data/ && cd data/
This assumes your server install is in ~/server and your data lives in ~/server/data. If you install to /home/azeroth/azerothcore-wotlk/env/dist/, update these paths to match your setup.
wget [paste-release-url-here]
Open the releases page, find the newest data.zip, copy its link, and paste it into wget. Example:
wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip
The example URL may not be the latest release; always use the newest data.zip from the releases page.
unzip data.zip
After extracting, you should have folders like dbc, maps, vmaps, and mmaps.
To generate map data yourself (instead of downloading it), you need access to a 3.3.5a (Build 12340) client. A simple layout is:
~/client/ (your WoW client files)~/server/ (your server install, including the extractor tools in ~/server/bin/)If your install path is different (for example, /home/azeroth/azerothcore-wotlk/env/dist/), adjust the commands accordingly.
cd ~/server && rm -rf data/ && mkdir -p data
cd ~/client && ~/server/bin/map_extractor
cd ~/client && mkdir -p vmaps && ~/server/bin/vmap4_extractor && ~/server/bin/vmap4_assembler Buildings vmaps
Note: If vmap4_extractor is interrupted, delete the Buildings directory before retrying.
cd ~/client && mkdir -p mmaps && ~/server/bin/mmaps_generator
Note: Generating mmaps can take a long time, depending on CPU and disk speed.
mv dbc maps vmaps mmaps Cameras ~/server/data/ && rm -rf Buildings
Important: mv -r is not valid for mv. Use plain mv as shown above.