This image will allow you to run your own completely dockerized World of Warcraft private server.
2.8K
This image will allow you to run your own complete dockerized WoW Wrath of the Lich King private server, using the Ashamane Core open source MMO framework (which is built on top of Trinity Core).
Before running your private realm, you need to set up your data files, and initialize your database.
First, you need to build data files using your WoW Wrath of the Lich King client (3.3.5a). Store this in a data volume or host location. Your data will be stored in /data, and the client will be pulled from /wowclient. You only need to do this once. Note that due to the nature of the data pulling files, there will be temporary data written to the WoW client directory so it cannot be mounted as read-only.
docker run -it --rm -v <WOW CLIENT VOLUME>:/wowclient -v <DATA VOLUME>:/data fdrake/ashamanecore:3.3.5 --builddata
Next, you need to initialize your database with the create script which will create the necessary databases, and the non-root user that will be used in the application. This is also executed only once. There following environment variables are used:
Example:
docker run --rm -e MYSQL_PORT=3306 -e MYSQL_HOST=mysql -e MYSQL_ROOT_PASSWORD=wow --network ashamanecore_default fdrake/ashamanecore:3.3.5 --dbinit
Note, that if you are running MySQL 5.7 that you should disable strict mode in your database:
mysql -u root -p -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';"
Create a config volume which will store your worldserver.conf and authserver.conf files. You can copy the distribution's versions from /server/etc. A few quick commands that will accomplish this:
docker run -it --rm -v <CONFIG VOLUME>:/config fdrake/ashamanecore:3.3.5 cp /server/etc/worldserver.conf.dist /config/worldserver.conf
docker run -it --rm -v <CONFIG VOLUME>:/config fdrake/ashamanecore:3.3.5 cp /server/etc/authserver.conf.dist /config/authserver.conf
The mandatory configurations are as follows:
worldserver.conf and authserver.conf, change all database references to your MySQL database.worldserver.conf, change the DataDir variable to /data.Optionally, you can create your own logs volume. Set the LogsDir variable to /logs in both worldserver.conf and authserver.conf files.
Finally, update the realmlist MySQL table in the auth to set the external and internal IP addresses of your realm by setting both to your docker host address.
Run your realm by kicking off two containers, one for the world server and the other for the auth server. Use the command line options --worldserver and --authserver, respectively. Note that for the world server you must enable STDIN and TTY (e.g. docker run -it) and for the auth server you must enable TTY.
A complete example Docker Compose file which encapsulates everything (but with persistent volumes that are created externally of the compose file):
version: '2'
services:
mysql:
restart: always
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=wow
volumes:
- mysql_data:/var/lib/mysql
worldserver:
image: fdrake/ashamanecore:3.3.5
command: --worldserver
tty: true
stdin_open: true
ports:
- '8085:8085'
volumes:
- ashamanecore_data:/data
- ashamanecore_config:/config
- ashamanecore_logs:/logs
authserver:
image: fdrake/ashamanecore:3.3.5
command: --authserver
tty: true
ports:
- '3724:3724'
volumes:
- ashamanecore_config:/config
- ashamanecore_logs:/logs
volumes:
mysql_data:
external: true
ashamanecore_data:
external: true
ashamanecore_config:
external: true
ashamanecore_logs:
external: true
Use docker attach to attach into your world server instance, and use the following command to create an account:
account create <username> <password>
Optionally, you can elevate the user to have GM powers:
account set gmlevel <username> 3 -1
Modify your realmlist.wtf file inside your Data directory to the following:
set realmlist <DOCKER HOST IP ADDRESS>
set patchlist <DOCKER HOST IP ADDRESS>
That's it! Fire up your WoW client and log in using the username and password that you used when creating your account.
The goal of the docker image was to streamline as much of the setup as possible within reason, but it was not designed to be a complete keyturn solution. Please refer to the wiki for step by step details if you run into issues.
Content type
Image
Digest
Size
1.4 GB
Last updated
almost 7 years ago
docker pull fdrake/ashamanecore