Skip to content

2025-11-15 5:02:28 AM

Status:

Tags:

2 - Hosting taserver on Ubuntu

Note

This guide is pretty much pulled from Griffon26's taserver GitHub documentation. The login server documentation has been adapted for Linux.

Setting Up the Ubuntu VM

  1. Start by spinning up an Ubuntu 24.04 LTS VM. I gave mine 4 CPUs, 16,384 MiB of RAM, and 50 GiB of storage.
  2. For me, I change the networking of the VM from Virtual network 'default' : NAT to Bridge device... and set the Device name to br0 because I have a bridge configured with that name on my host machine. This will allow the VM to be assigned its own LAN IP address.
  3. During the Ubuntu setup, do the basics of selecting your language, keyboard layout, etc. I selected Ubuntu Server (minimized) instead of Ubuntu Server since we only need the basics. I did not check Search for third-party drivers.
  4. Note the assigned IPv4 address. Mine is 172.28.3.130.
  5. While Ubuntu is doing mirror location tests, go into your router's settings and make that IP static for the device.
  6. I selected Use an entire disk and disabled Set up this disk as an LVM group.
  7. Create your Ubuntu login credentials.
  8. Check the Install OpenSSH server option.
  9. Once you're able to log in to the Ubuntu machine normally, you're ready to move on to the login server.

Setting Up a Login Server

  1. Run the following commands to install these tools:
sudo apt update

Then:

sudo apt install python3 python3-pip python3-venv git iptables
  1. Run taserver in a venv (this shouldn't be necessary but this guide will assume that you do this):
python3 -m venv taserver-env

Then:

source taserver-env/bin/activate
  1. Clone the taserver repo and install the required Python modules:
git clone https://github.com/Griffon26/taserver.git

Then:

cd taserver

Then:

pip install -r requirements.txt
  1. Install Wine (for udpproxy.exe):

The taserver firewall script requires the Windows udpproxy.exe.

You will need Wine to run it.

Run:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine64 wine32

Check that Wine is operational:

wine --version
  1. Download the UDP proxy:
python3 download_udpproxy.py
  1. Wine provides msvcp140.dll automatically in most cases. If it doesn't, install it via winetricks:
sudo apt install winetricks
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine-taserver
wineboot -i
winetricks -q --force vcrun2017 dotnet48

I ended up doing that just in case. Note that the last command can take a while and can also show a lot of errors. Don't worry about them.

Check that vcrun2017 and dotnet48 got installed with:

WINEPREFIX=$HOME/.wine-taserver winetricks list-installed

You should see output like:

vcrun2017
dotnet48
  1. Run the taserver firewall script:

This must be ran with sudo so it can manage iptables rules (same purpose as Windows admin mode).

From the root of the taserver directory (/home/taadmin/taserver/):

sudo /home/taadmin/taserver-env/bin/python start_taserver_firewall.py &

You should see this in the console while it's running:

2025-11-15 15:36:14,439 - firewall - INFO - taserver-blacklist: Resetting all iptables rules
2025-11-15 15:36:14,439 - firewall - INFO - taserver-blacklist: Removing all blacklist rules
2025-11-15 15:36:14,442 - firewall - INFO - taserver-blacklist: Setting up blacklist rules
2025-11-15 15:36:14,445 - firewall - INFO - taserver-whitelist-0: Resetting all whitelist rules
2025-11-15 15:36:14,445 - firewall - INFO - taserver-whitelist-0: Removing all whitelist rules
2025-11-15 15:36:14,449 - firewall - INFO - taserver-whitelist-0: Setting up whitelist rules

Note

If the firewall script prompts you to enter your password, press Ctrl-C or fail the check and then run it again without the & at the end. That should let you properly type in your password and start the firewall. Once it's started, press Ctrl-C to kill the script and then run the script again with the & at the end and it shouldn't prompt you for your password this time.

  1. If you want users outside of your LAN to access your login server, add these port forwarding rules to your router now:
  • TCP port 9000
  • TCP port 9001
  • TCP port 9080

Point them to your Ubuntu Server's LAN IP. For me, that's 172.28.3.130

This step isn't necessary if you're just playing on your LAN.

  1. Start the login server:

The login server requires distutils functionality, which is included when you install setuptools:

/home/taadmin/taserver-env/bin/python -m pip install --upgrade pip setuptools

Start the login server:

cd /home/taadmin/taserver
python3 start_login_server.py &

You should see this line in your console output:

2025-11-15 16:01:05,892 - login_server.loginserver - INFO - login server started
  1. Install nano (or your preferred text editor):
sudo apt install nano
  1. Edit this file:
nano ~/taserver/data/gameserverlauncher.ini

Set this variable to point to 127.0.0.1:

host = 127.0.0.1

Save and exit the file.

Note

From what I understand (and what my testing suggests), the host variable in gameserverlauncher.ini is what tells game servers running on this machine where to look for a login server. So, if you're running your own login server and will also be running a game server on the same machine like this guide will show, you point it to itself (127.0.0.1). LAN clients will just point their game clients to the server's LAN IP address and external users will point their clients to the server's public IP address (port forwarding rules are what allow access).

  1. Test logging into the game from a game client on your LAN by pointing the client to the login server's LAN IP. For me, that's 172.28.3.130. It should allow you to log in. If it does, move on to setting up a game server.

Setting Up a Game Server

Note

This section of the guide assumes you already followed the guide for setting up a login server and are simply continuing into this section. If you didn't, then the big difference is that after step 5 you would then download the latest version of taserver and extract it.

  1. If you want users outside of your LAN to access your game server, add these port forwarding rules to your router now:
  • TCP port 7777
  • UDP port 7777
  • TCP port 7778
  • UDP port 7778
  • UDP port 9002

Point those rules to your Ubuntu Server's LAN IP. For me, that's 172.28.3.130.

  1. Headless only: Install xvfb:

You only need this step if you are on a machine without a display, such as a server. That is the case for me, so I did this step.

sudo apt-get install xvfb
Xvfb :1 &> xvfb.out & export DISPLAY=":1"
  1. Install wine, python and other dependencies.

Wine is used to run windows programs (Tribes Ascend) on Linux. Python is required to run taserver. This step may take a long time.

Note

This assumes your venv is still activated from the login server steps. It only affects the pip command below.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y wine winetricks python3 python3-pip unzip
pip install -r requirements.txt
  1. Make a tribes directory for your game client files:
mkdir /home/$USER/tribes && cd /home/$USER/tribes
  1. Place your copy of the Tribes: Ascend Parting Gifts client in this folder. For me, I used SCP to copy my client from my desktop PC:
scp -r [email protected]:"home/bob/Games/Tribes - Ascend/Tribes_Ascend_Parting_Gifts" .
  1. Update taserver configuration.

Edit this file with a text editor:

nano ~/taserver/data/gameserverlauncher.ini

Update the dir variable to point to your game client folder that holds TribesAscend.exe:

dir = /home/taadmin/tribes/Tribes_Ascend_Parting_Gifts/Binaries/Win32
  1. Download TAMods-Server and InjectorStandalone:
cd /home/$USER/taserver
python3 download_compatible_controller.py
python3 download_injector.py
  1. Launch the game_server_launcher:

Note

Your firewall and login server should already be running in the background from when we set up the login server. If they aren't, go back and start them up first.

cd /home/$USER/taserver

pkill Xvfb
Xvfb :1 &> xvfb.out & export DISPLAY=":1"

python3 start_game_server_launcher.py &

At this point, your game server should be up and running and players should be able to play on it.

Starting taserver

Run these commands if you've already followed all the setup instructions and are just trying to start your taserver firewall, login server, and game server after stopping them or rebooting your Ubuntu server:

source /home/$USER/taserver-env/bin/activate
cd /home/$USER/taserver

export WINEARCH=win32
export WINEPREFIX=$HOME/.wine-taserver

sudo /home/taadmin/taserver-env/bin/python start_taserver_firewall.py
# enter password
sudo /home/taadmin/taserver-env/bin/python start_taserver_firewall.py &

python3 start_login_server.py &

pkill Xvfb
Xvfb :1 &> xvfb.out & export DISPLAY=":1"

python3 start_game_server_launcher.py &

Stopping taserver

Run these commands to completely stop the taserver game server, login server, and firewall:

source ~/taserver-env/bin/activate
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine-taserver

wineserver -k
sudo wineserver -k 2>/dev/null

pkill -f start_game_server_launcher.py 2>/dev/null
pkill -f start_login_server.py 2>/dev/null
pkill -f start_taserver_firewall.py 2>/dev/null

pkill Xvfb 2>/dev/null

rm -rf $WINEPREFIX/drive_c/windows/temp/*
rm -rf $WINEPREFIX/drive_c/users/$USER/Temp/*
rm -rf /tmp/.wine-* 2>/dev/null

rm -f ~/taserver/data/logs/*.lock
rm -f ~/taserver/data/*.pid

After doing this, you should be able to run the startup commands to start taserver again.

References