This project provides a Dockerized environment for experimenting, developing, and researching with the TrinityCore World of Warcraft server emulator. It is intended for educational and non-commercial use only.
- Easy setup with Docker Compose
- Automated database initialization and data extraction
- Minimal manual intervention required
- Web interface for interacting with the worldserver process
- Multiple TrinityCore cores
- Automated setup scripts
- MySQL database server
- Web interface for server interaction
trinitycore-docker/
βββ client/ # Folder where you must place the WoW client files
βββ docker-compose.yml
- Prepare directories and retreive the require files
TrinityCore 3.3.5
mkdir trinitycore-docker
cd trinitycore-docker
curl -o docker-compose.yml https://raw.githubusercontent.com/valcriss/trinitycore-docker/refs/heads/main/docker-compose.335.yml
mkdir clientTrinityCore 4.4.2
mkdir trinitycore-docker
cd trinitycore-docker
curl -o docker-compose.yml https://raw.githubusercontent.com/valcriss/trinitycore-docker/refs/heads/main/docker-compose.442.yml
mkdir clientTrinityCore 11.2.0
mkdir trinitycore-docker
cd trinitycore-docker
curl -o docker-compose.yml https://raw.githubusercontent.com/valcriss/trinitycore-docker/refs/heads/main/docker-compose.1120.yml
mkdir client-
Place your WoW client files in the
client/directory -
Edit in the docker-compose.yml file the environment section according to your needs (public ip address, 127.0.0.1 if your computer hosts the game and the server).
-
Start the environment
docker-compose up -dThe system will automatically:
- Download and initialize required databases
- Extract map and DBC data from your client files
- Start both
authserverorbnetserverandworldserver
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TrinityCore 335 Docker 1.0.0 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Checking database connection β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Connection to database successful. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Checking databases structure β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Databases are initialized. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Checking databases data β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Databases are not empty. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Updating auth server configuration files β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Writing auth server configuration successful. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Updating world server configuration files β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Writing world server configuration successful. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Updating application database β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Application database update successful. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Updating realm informations β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Realm informations update successful. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Checking client map data β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Client map data present. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Application Startup Complete β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Web interface listening on http://0.0.0.0:3000 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
After startup, you can access the web interface to control the server:
http://<container-ip>:3000Through the web interface, you can send commands to worldserver, such as creating game accounts.
β οΈ Donβt forget to edit your realmlist.wtf or Config.wtf file to point to the containerβs IP address.
The web interface now includes a secure authentication mechanism to restrict access. Users must log in with a valid username and password to interact with the server.
- Login Page: Upon accessing the web interface, users are prompted to log in if authentication is enabled.
- Environment Configuration: Set the
ACCESS_USERNAMEandACCESS_PASSWORDenvironment variables in thedocker-compose.ymlfile to define the credentials. - Session Management: Once authenticated, the session remains active until the browser is closed.
β οΈ Ensure you configure strong credentials to secure your server.
- A compatible WoW client is required, but not provided.
- All databases (
auth,characters,world) are automatically created and populated at first run. - Account creation is handled via the web UI or TrinityCore commands.
- Ensure the WoW client version is exactly 3.3.5a (12340) for extraction to succeed.
- If the client files are not correctly placed in
client/, extraction and setup will fail. - Use
docker logs <container-name>for debugging.
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is open-source under the MIT License.
