Skip to content

tonymmm1/vmangos-docker

Repository files navigation

vmangos-docker

vmangos-docker CI build

Release: 0.5.3

This is a project that is based on the VMaNGOS core running on Docker.

Source code from https://github.com/vmangos/core.

The configuration should be set to work with localhost games and can be edited by changing the realmd.realmd table and adding the correct server IP. Changing the exposed port for mysql in the Docker Compose file should also be considered if not removing it all together.

Arm Notice:

Make sure operating system is 64bit and that thread count should be 2 for <= 4GB ram.

Requirements:

Step 1:

a.) Place dependencies as listed below:

  • /src/data
  • /src/data/maps
  • /src/data/mmaps
  • /src/data/vmaps
  • /src/data/5875(adjust according to patch release)
  • /src/data/5875/dbc

b.) Configuration Files:

  • Server config: /config
  • Database config: /env/db.env
  • VMaNGOS: /vmangos
  • Database volume: /var/lib/docker/volumes/vmangos_database
  • CCache: /src/ccache

Step 2:

a). Run setup.py for creating containers and for managing this project. Default flags are already applied and a help menu can be shown.

chmod +x 
./setup.py 

Help menu:

./setup.py -h

b). Configure realm ip address

Use mysql-workbench or from the vmangos_database container edit the ip address column in realmd.realmlist to set the ip that will be exposed for connections(public ip required for internet). Using the account and password for the mangos user or the root user as can be configured in db.env.

Step 3: Maintenence

a). Updating all repos

./setup.py -m 0 --update

b). Cleaning CCache

./setup.py --ccache

c). Cleaning unused Docker Containers

./setup.py --docker

Command line options:

usage: setup.py [-h] [-m M] [--update] [-t T] [-u U] [-c C] [-a A] [--ccache] [--docker] [-v]

Vmangos-Docker cli

options:
  -h, --help  show this help message and exit
  -m M        Select mode
              	0 = default(default)
              	3 = reset all files
              	4 = ccache clean
              	5 = Docker clean
  --update    Use update mode
  -t T        Input number of threads to use for compiling, values 1-2(2 default) for <4GB ram
  -c C        Input Client version to compile
              	4222 = 1.2.4
              	4297 = 1.3.1
              	4375 = 1.4.2
              	4449 = 1.5.1
              	4544 = 1.6.1
              	4695 = 1.7.1
              	4878 = 1.8.4
              	5086 = 1.9.4
              	5302 = 1.10.2
              	5464 = 1.11.2
              	5875 = 1.12.1(default)
  -a A        Enable anticheat
              	0 = Disable Anticheat
              	1 = Enable Anticheat(default)
  --ccache    Clean CCache(exclusive)
  --docker    Docker Clean(exclusive)
  -v          Increase output verbosity

Example command config

./setup.py -m0 -t2 -c5875 -a1

List of Commands:

General commands(All docker compose commands must be run from within the project directory)

docker compose up (Creates and runs containers with console output)
docker compose up -d (Creates and detaches from running containers)
docker compose ps (Lists all running containers)
docker compose stop (Stops containers without destroying)
docker compose restart (Restart containers)
docker compose down (Destroys containers)
docker compose down -v (Destroys containers and volumes)
docker compose exec vmangos_(container) bash (Executes bash inside container of choice)
docker ps (Lists all running docker processes)
#using tmux/screen is recommended to not kill
docker attach (applies to the vmangos_mangos/realmd/database) session