sudo apt update && sudo apt upgrade -y
sudo apt install git make cmake build-essential libssl-dev libbz2-dev \ default-libmysqlclient-dev libace-dev python2 net-tools screen gdb mariadb-server mariadb-client -y
sudo adduser mangos sudo usermod -aG sudo mangos cd ~ mkdir -p ~/mangos/four/db mkdir -p ~/mangos/four/bin mkdir -p ~/mangos/four/gamedata mkdir -p ~/mangos/four/logs
sudo mysql CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'mangos'; GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost' WITH GRANT OPTION; CREATE DATABASE IF NOT EXISTS mangos_auth CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE IF NOT EXISTS mangos_characters0 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE IF NOT EXISTS mangos_world0 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; EXIT
cd ~/mangos/four/db git clone --recursive https://github.com/mangosfour/database.git ~/mangos/four/db/database # Remove the broken Translations submodule cd ~/mangos/four/db/database git submodule deinit -f Translations git rm --cached Translations rm -rf .git/modules/Translations # Update remaining submodules (Realm) git submodule update --init --recursive
# Import the auth database mysql -u mangos -p mangos_auth < ~/mangos/four/db/database/Realm/Setup/realmdLoadDB.sql # Import character and world databases mysql -u mangos -p mangos_characters0 < ~/mangos/four/db/database/Character/Setup/characters.sql mysql -u mangos -p mangos_world0 < ~/mangos/four/db/database/World/Setup/world.sql
If your realmlist
table is empty, insert a row manually:
mysql -u mangos -p USE mangos_auth; INSERT INTO realmlist (id, name, address, localAddress, localSubnetMask, port, icon, realmflags, timezone, allowedSecurityLevel, population, realmbuilds) VALUES (1, 'ServerNameHere', '192.168.x.x', '192.168.x.x', '255.255.255.0', 8085, 0, 2, 0, 0, 0, '33555'); SELECT * FROM realmlist; EXIT
This ensures your realm is recognized by the server.
cd ~/mangos/four git clone --recursive https://github.com/mangosfour/server.git ~/mangos/four/server cmake -S ~/mangos/four/server/ -B ~/mangos/four/build/ \ -DBUILD_MANGOSD=1 -DBUILD_REALMD=1 -DBUILD_TOOLS=1 \ -DUSE_STORMLIB=1 -DSCRIPT_LIB_ELUNA=1 -DSCRIPT_LIB_SD3=1 -DPLAYERBOTS=1 -DPCH=1 cd ~/mangos/four/build make -j$(nproc) make install
cp ~/mangos/four/build/install/bin/mangosd ~/mangos/four/bin/ cp ~/mangos/four/build/install/bin/realmd ~/mangos/four/bin/ cp ~/mangos/four/build/install/bin/tools/*-extractor ~/mangos/four/gamedata/ cp ~/mangos/four/build/install/bin/tools/*.sh ~/mangos/four/gamedata/ cp ~/mangos/four/build/install/bin/tools/offmesh.txt ~/mangos/four/gamedata/ chmod -R a+w ~/mangos/four/gamedata cd ~/mangos/four/gamedata chmod +x ExtractResources.sh ./ExtractResources.sh
cd ~/mangos/four/build/etc cp *.dist ~/mangos/four/etc/ cd ~/mangos/four/etc cp mangosd.conf.dist mangosd.conf cp realmd.conf.dist realmd.conf cp ahbot.conf.dist ahbot.conf # Edit database connection info and server settings in these files nano mangosd.conf nano realmd.conf
cd ~/mangos/four/bin screen -S realm -d -m ./realmd screen -S mangos -d -m ./mangosd
Use screen -r realm
or screen -r mangos
to attach to logs.
# In your WoW client folder: set realmlist <Server-IP-or-Hostname>
Default accounts:
USER: ADMINISTRATOR | PASSWORD: ADMINISTRATOR USER: GAMEMASTER | PASSWORD: GAMEMASTER USER: PLAYER | PASSWORD: PLAYER USER: MODERATOR | PASSWORD: MODERATOR