How to install using pre-compiled packages

Hi Folks,

As mentioned in a later post, I no longer play WoW and decided to not port the trinitycore packages to Debian 11 ‘Bullseye’ which was just released. I have discontinued builds and removed the packages from the repo.

Thank you all for using the packages in the past few years and all of the feedback I received!

Please check the ‘Rolling your own’ section on how to set this up for yourself! :slight_smile:


== Original message ==

Hi folks,

Having issues compiling? Don’t want to wait for an hour to compile a new server? Want a steady stream of updates? Well then, you came to the right place!

With the following instructions, one can install their own TrinityCore server using pre-compiled packages. The current state of the 2 branches is:

  • 3.3.5a: fully functional and installable using the instructions in this topic
    • master: Still WIP, the packages are compiled and in the repository, but still need to be tested and validated against the installation instructions. Not compiled automatically.

[SIZE=18px]== Background ==[/SIZE]

There are 3 packages, server, database and tools:The database package will also install MariaDB from the default Debian Repository

[ul][li]Server package: pre-compiled version using the instructions provided on the TrinityCore wiki. Date and commit-hash are included in version tag. By default this package will also install database, but it is possible to run the database on a remote server. And it will not overwrite any configuration files in place without asking.[/li]
[li]Database package: Contains TDB335.62 with all the database updates provided by the commit. Also contains a slightly modified auth_database (which has to be setup with the provided script), so you can control the server while it’s started without console (in order to run it as a service, details below).[/li]
[li]Tools package: contains the extractors, so you can run them on your desktop with the client instead of uploading a copy to the server. I also included a script that will queue all the commands you need to generate a data package for your TC server. This package isn’t supposed to run on the same system as the server (because it would require you to upload a complete WoW client to your server).[/li]
The packages come with a default configuration to support service control by SystemD. A few details:

[ul][li]/opt/trinitycore - server files and data files[/li]
[li]/var/log/trinitycore - server logs[/li]
[li]/var/run/trinitycore - PID files[/li]
See for more info on how and why

[SIZE=18px]== Update frequency ==[/SIZE]

These packages will be recompiled everyday at midnight, compiling/uploading takes about an hour per tree, so expect fresh packages:

  • 3.3.5a: around 01:30 AM CEST
    • master: not compiled automatically (per 2019-09-09)

The script will automatically download the latest TDB version if it is updated in the source files. If there are any changes with the configuration files (new options added etc.) I will add them as soon as I can.

[SIZE=18px]== Installation Instructions ==[/SIZE]

This instruction will help you setup a TrinityCore server on a Debian Buster server with it’s own local MySQL server. If you require a seperate MySQL server, please adjust where needed. All packages provided are only tested on Debian Buster stable (with updates).


It is in your best interest to read the entire instruction first before installing!

[ol][li]Install a server with Debian Buster and log in on it[/li]
You don’t need anything except the basic install!


[li]Add the following line to /etc/apt/sources.list[/li]		 [FONT='Courier New']deb []( buster main[/FONT]
			Add the repository key for package verification
			 [FONT='Courier New']wget []( -O - | apt-key add -[/FONT]

[li]Update your package lists[/li]		apt-get update

[li]Install the server[/li][I][U]3.3.5a:[/U] [/I][FONT='Courier New']apt-get install trinitycore-server3.3.5-en[/FONT]

master: [FONT=‘Courier New’]apt-get install trinitycore-server-master-en[/FONT]

[li]NOTE: This command will install the TrinityCore server and all it's dependencies (including a MariaDB server)[/li]		If you want to run a seperate database server, run this command with '--no-install-recommends' to skip the installation of the database package.

[li]FIRST TIME ONLY: Run the following script to setup the databases[/li][FONT='Courier New'][/FONT]
			If you run the database on a different server, run the script on that server. Also, change worldserver.conf and authserver.conf accordingly!

[li]Extract the MAPS, MMAPS and VMAPS using the extractors.[/li]		Pro-tip, if you have a (fast) Linux (gaming) desktop, do the following:
			Install the trinitycore-tools3.3.5 package on your desktop with the WoW client.

[FONT=‘Courier New’]apt-get install trinitycore-tools3.3.5-en[/FONT]

		[li]Go to your WoW client folder and run the script[/li][FONT='Courier New']cd /to/my/wowclient[/FONT]
		[li]After extracting all the maps, mmaps, vmaps and dbc's it will ask you the following question:[/li][FONT='Courier New']# Your data package is in /to/my/wowclient/trinitycore-data.tgz[/FONT]

[FONT=‘Courier New’]# Would you like this script to apply it on your server? y/N[/FONT]

		[li][FONT=Arial]If you select yes, it will ask you where to upload the data package[/FONT][/li]
			See []( for all the details surrounding the extracting process.

[li]Start the server![/li][FONT='Courier New']systemctl start trinitycore-authserver.service
	systemctl start trinitycore-worldserver.service[/FONT]

[li]You can control the server using the following command:[/li][FONT='Courier New']telnet localhost 3443[/FONT]

	Username: admin
	Password: ChangeMeNOW!

[li]Change the password for the admin account:[/li][FONT='Courier New'].account set password admin NEWPASSWORD NEWPASSWORD[/FONT]

[li]Create a new user[/li][FONT='Courier New'].account create USERNAME PASSWORD[/FONT]

	Press Enter again to log out

[li]Set your client's realmlist to your newly installed server[/li]		GameClientDir/Data/enUS/
	 Note: enUS could also be enGB if you have a European version of the client

[li]Start your game, log in and enjoy![/li]	

[SIZE=18px]== Upgrade to Debian 10 Buster ==[/SIZE]

When upgrading my system to Debian 10 (Buster) I ran into an issue where my MariaDB server was no longer starting properly. In order to fix it, do the following:

[ol][li] Make a snapshot of your current machine (and always make backups!)[/li]
[li]Before upgrading, run the following command, this will upgrade some MariaDB internals to the current version you have running. If you are already up to date, the script will say so. No need to run it with[FONT=‘Courier New’] --force[/FONT][/li][FONT=‘Courier New’]mysql_upgrade -u root -p[/FONT]

[li]Upgrade your system to Debian 10 via the usual way (lots and lots of guides already on the interwebz, find one)[/li]	
[li]When you run your server on LXC, please enable Nesting and restart the LXC container again.[/li]	
[li]After starting the server, check if MariaDB is running, and run the upgrade script (step 2) again to update MariaDB's internals again.[/li]	

[SIZE=18px]== Updating ==[/SIZE]

[SIZE=14px]Updating the server to a newer version is very easy, I do it using the following script:[/SIZE]

[FONT=‘Courier New’]#!/bin/bash
# Upgrade the TrinityCore server to the latest build[/FONT]

[FONT=‘Courier New’]# Stop running server
systemctl stop trinitycore-worldserver.service[/FONT]

[FONT=‘Courier New’]# Upgrade packages, change the packagename if you wish to run the ‘master’ branch
apt-get update
apt-get upgrade trinitycore-server3.3.5-en trinitycore-database3.3.5-en -y -o Dpkg::Options::=‘–force-confdef’ -o Dpkg::Options::=‘–force-confold’[/FONT]

[FONT=‘Courier New’]# Start server
systemctl start trinitycore-worldserver.service[/FONT]

[SIZE=18px]== Feedback ==[/SIZE]

Any feedback is appreciated! I have been running my test-server with this setup for a few days now and it is still alive and kicking. However, my userbase is quite small (5) and I would like to know if the current way of updating is doable.

Thoughts, feelings, emotions?

[SIZE=18px]== Rolling your own? ==[/SIZE]

Want to compile it yourself, but make it easier? Don’t trust me? Need custom patches? No problem! Below are the recipes I use for the build script I use to generate the binaries and the packages. They are still only suitable for Deb based distro’s, but feel free to roll your own!

For Windows, AppVeyor builds pre-compiled TC for 64 bits and

P.S Pinned and featured this post.

Just a note, I’ve changed the DB package to be based on TDB_full_335.62_2016_10_17 now. (I updated this earlier, but that was too soon :slight_smile: )

P.S. is there any check I can do (before compiling) to see which version of the TDB is required? Then I might be able to make this more seamless!

Hi guys,

I’ve included packages for the ‘master’ branch in the repository for you to play with! :slight_smile: but, do note that these are NOT done yet!

[ul][li]Configuration is NOT complete (currently I’ve packaged the config files for the 3.3.5 branch)[/li]
bnetserver config is NOT included

		[li]worldserver config is 3.3.5 (I'm not sure if it's compatible)[/li]			

[li]Database script might or might NOT work[/li]	

I will build a ‘master’ branch server when I have the time, but in the mean time, feel free to use these packages, but please leave a reply in this topic if there is something I missed (or to save me some time setting this up :wink: )

Perhaps using revision_data.h

That looks like it could work, I’ll give it a shot :slight_smile:

Is there any chance you’ll also include the source debian mixings into the repository? Also, I am having some problems with apt-get update:

Reading package lists… Done
E: Failed to fetch No Hash entry in Release file /var/lib/apt/lists/partial/repo.element-networks.nl_dists_custom_Release which is considered strong enough for security purposes
E: Some index files failed to download. They have been ignored, or old ones used instead.

I’m using Ubuntu 16.04 LTS 64-bit.

Hi Symax,

This is caused by sharpened security requirements of newer versions of APT, I’ve seen similar messages in Debian Unstable (which runs a version of APT close to Ubuntu’s current). I’ve created a stronger key, but I need to do some more to make it work. I will continue with this tomorrow or Wednesday. In the mean time you could try running with

Just as a side-note, I’m not sure whether these packages will work on Ubuntu, unless the names and versions of all dependencies are similar of those in Debian Jessie. But if you can let me know, I will amend the post with that information!

Edit: oh, btw, I missed that question, what kind of sources would you like to know/have? I’ve only followed the original compilation instructions :slight_smile:


What I’d be happy with is the tarball of the debian/ subdirectory you used for making these packages.

But if you are willing to go a step further and make source_version.orig.tar.gz and then do “dpkg-source -b trinitycore-version/” to create the source packages, that’d be great. I was able to manually fetch the .deb files from your repository.

Another thing to consider: allows you to create recipes combining your work with the original git repository (I still haven’t learned how to do this myself). You could go this route and make it so that the sources are compiled by a remote machine for different architectures with little effort. I think Debian has a similar repository you can do this with as well.

I took a look, but I take it you would like to have the original uncompiled git source in those packages? My current setup doesn’t really allow for this. It does the following:

  • Maintain a local copy of the repo (the ‘meta’ script that builds trinitycore runs ‘git pull’ before compiling)
    • Build the software according to the build recipe I defined
    • Package the software according to the package recipe
    • Push the resulting package to the repo

This allows me to save a lot of disk space (I only have 1 copy of the source per branch), and it should be possible to redo any older builds by checking out that version in git.

I’m using a script a colleague made, I will link it in the post once he posted in on Github (it’s on his todo-list). So that part of this setup I cannot share, as it is not my work.

However, I’m cool with sharing the recipes I made for the build script (see attachment). But I do ask that if you make improvements/changes to let me know. So I can incorporate them in the scripts I use.

I also just updated the build script to look for the correct version of the TDB when the source files mention it :wink:


Thanks. I think this file is what I’m looking for. Too bad I can’t seem to reach it. Maybe I’m trying to fetch it too soon?

Hmm… Weird, check

Hmm. I get that I can’t find an IP to that name. :frowning:

I’m based in the US in case that matters.

That was my bad, I changed the text to reflect the correct name, but the actual link was pointing at the internal hostname. I fixed the link, try again :slight_smile:

That worked. Thanks. I look forward to your friend releasing that script, or someone possibly making a “proper” debian/ subfolder in the git project for easier debian packaging.

Hi all!

I’ve created a script that will generate a data package for your server and added the instructions on how to use it in the post. I’ve just added it to my build environment, so it will be ready for use tomorrow!


This is REALLY great. I installed the whole server in minutes - not hours (had to compile everything by hand). Only thing maybe worth looking into: bots.
I would would love to populate my rather empty game world with some / more bots.

Would that be doable somehow?

Hi moonwhaler,

Thanks for the feedback! :slight_smile:

As for bots, I fear that there isn’t a viable project at the moment that implements player bots. I have tried merging a few codebases a few years ago, if I got it working, it was very laggy and heavily taxing my server. And sadly, most of the projects that implement a form of bots in TrinityCore are dead, or almost dead. As the code is no longer compatible with the server.

What -could- be an option, but I don’t know how well they are developed, take a spare PC, run some copies of WoW on it in low graphics mode and use an actual bot to co ntrol them. But I don’t know if they are any bots that can do anything more then ‘just farming’. You might also need to disable Warden if you use modified WoW clients.



Sorry if this has been asked somewhere in the forum. I did a quick search and it returned 0 hit so I thought I asked.

Can this be run/supported on Ubuntu 14? Is there a pre-packaged one for client 7.2.5?


Hi blackcat,

The software itself will run on Ubuntu just fine, as long as you are providing it with enough resources. However, the packages are made for Debian 8 (will upgrade to 9 soon). You are free to try and install the packages on your Ubuntu server, however, some package names for the dependencies might not match. And then the package manager (dpkg) will be unable to install the software.

You could do one of 2 things:

  • Run a debian based server
    • Manually unpack the deb files and move the files to the correct folder (and script that)

Regarding the 7.2.5 server, I do make packages for the ‘master’ branch for trinitycore, but I don’t run a master branch server and those packages might contain incomplete configuration. However, feel free to try them and let me know what to include :slight_smile: