Prerequisites
Ensure you have docker and docker compose installed. You also need some way to edit the SQL, I suggest HeidiSQL
Download and build AzerothCore
Create a folder somewhere, eg called wowserver
Clone AzerothCore using git,:
git clone https://github.com/azerothcore/azerothcore-wotlk.git --depth 1
To add modules, use git clone in the azerothcore-wotlk/modules
folder
eg:
cd azerothcore-wotlk/modules
git clone https://github.com/azerothcore/mod-aoe-loot
Once you have the modules you want cloned, build the server with
docker compose build
You shouldn't need to edit the docker-compose.yml, but you may if you want to change the port it runs on. By default it uses 8085
and 3724
for world and auth respectively. These both need to be port forwarded and/or allowed through firewalls for others to join.
For easier editing, you can change the docker volumes to be mounted files, but it isn't necessary.
Then you can start the servers with
docker compose up
or add -d for detached
Using the console / adding an account
To interface with the server, eg to add an account, run
docker attach ac-worldserver
then you can run
account create <user> <password>
Setting the realmlist for the server
Using a MySQL browser, for example HeidiSQL, navigate to acore_auth
then the table realmlist
. Set address
to your Public IP / domain name.
If you're using cloudflare, create a DNS only (grey cloud) "A" record to your IP, you can use something such as Cloudflare DDNS to automatically update the address in cloudflare if you have a dynamic IP address.
Setting the realmlist for the client(s)
Everyone needs to adjust their ./WTF/Config.wtf
in their Wow game folder and set the realmList to the IP/domain you use.
You might also need to change ./Data/enGB/realmlist.wtf
(or whatever language?)
These files might need to be set to Read-only if it keeps resetting.
If you host it locally, you can just use localhost (127.0.0.1) as the ip
Configuration
You can configure the worldserver.conf and authserver.conf in ./env/dist/etc
by default. If they don't exist, copy and rename the .conf.dist
files to just be .conf
.
You shouldn't need to touch anything here. Don't change the Bind IP or port in these .conf files, if you wish to change it you should change it in the docker-compose.yml.
There are some fun things to change in the worldserver.conf, like XP rates, crit chances, allow profanity, etc.
Some modules need to be configured to work. Often they will be disabled by default.
Check in ./env/dist/etc/modules
for each module config, the server just needs to be restarted (not re-built) for them to apply.