Creating your own Raspberry Pi TeamSpeak Server

In this tutorial, we will show you how to run a TeamSpeak server on your Raspberry Pi.

Raspberry Pi TeamSpeak Server

TeamSpeak is one of the most popular VoIP communications systems around with a focus on online gaming.

Even with the rise of competing software like Mumble or Discord, TeamSpeak has managed to keep its popularity.

Its popularity is in large thanks to its low latency, good quality audio with great configurability.

Running a TeamSpeak server on your Raspberry Pi isn’t the simplest of tasks as it is only available as an x86 application.

Thanks to the power of the box86 emulator, we can get your Pi powered TeamSpeak server up and running in no time.

Equipment

Below is a list of the equipment we used to set our Raspberry Pi as a TeamSpeak Server.

Recommended

Raspberry Pi

Micro SD Card (8GB+)

Network Connection

Optional

Raspberry Pi Case

USB Keyboard

USB Mouse

We tested this tutorial on the Raspberry Pi 400 using the latest release of Raspberry Pi OS Buster.

Preparing your Raspberry Pi for the TeamSpeak Server

Before installing the TeamSpeak server to your Raspberry Pi, you must do some initial setup work.

These steps mainly involve installing the Box86 emulator so that we can run the server software on our Pi.

1. Before continuing any further with this guide, you need to make sure you have the box86 emulator installed on your system.

We have written up a guide detailing how to install box86 on our website.

box86 is a nifty piece of software that converts x86 instructions to ARM ones that our Pi’s processor can understand.

2. Once you have box86 installed, let us ensure we have an updated system to work off.

You can update your Raspberry Pi by running the following two commands.

sudo apt update
sudo apt full-upgrade

3. Finally, we need to install the jq package to our Pi.

Install this package by using the following command.

sudo apt install jq

While the TeamSpeak software doesn’t require jq, it makes the process of downloading the latest version straightforward.

Installing the TeamSpeak Server to the Raspberry Pi

With our Raspberry Pi now prepared, we can now install the TeamSpeak Server software to our Raspberry Pi.

1. All we need to do is download the latest x86 Linux version of the server software by using the following command.

wget $(curl -Ls 'https://www.teamspeak.com/versions/server.json' | jq -r '.linux.x86.mirrors | values[]')

This little one-liner does a few things to make life easier.

First, we retrieve the server.json that contains the version numbers and pass it to the jq package.

We use jq to interpret the JSON data from this file and retrieve the download link for the TeamSpeak server’s latest version.

2. Once the command finishes, download the archive to your device, we can extract it.

To extract the TeamSpeak server to our Raspberry Pi, we can run the following command.

tar xvf teamspeak3-server_linux_x86-*

We use the asterisk(*) at the end of the command to pick up any archives starting with “teamspeak3-server_linux_x86-“.

Using the asterisk will allow the command to work with any new version of the archive.

3. As we have extracted the archive, we no longer need it and we should clean up after it.

We can delete the archive by running the following command on your Raspberry Pi.

rm teamspeak3-server_linux_x86-*

Running the TeamSpeak Server

Finally, we can move on to getting the TeamSpeak server software running on our Raspberry Pi.

The process is made effortless thanks to the way box86 works. It allows us to run an x86 application like TeamSpeak as if it was a standard ARM program.

1. Change into the directory where we extracted the server software to.

We can change into the directory by running the command below.

cd teamspeak3-server_linux_x86

2. Before we can run the TeamSpeak server for the first time, you will need to agree to their licensing agreement.

Once you have read through the licensing agreement, you can type in the following command to create the acceptance file.

touch .ts3server_license_accepted

3. Once you have accepted the license, you can finally run the server software.

Use the command below on your Raspberry Pi to run the TeamSpeak server software.

./ts3server

4. When you first run the TeamSpeak server, you will be presented with a few important bits of information.

The first details provided (1.) are the details for logging in to your TeamSpeak server as a query account. You can use this account to retrieve the details of your TeamSpeak server.

The second token (2.) provided allows you to elevate your regular user to a server admin.

Raspberry pi TeamSpeak Server Successfully Running

Starting the Server at Boot

For our last section, we will show you how to configure your Raspberry Pi so that it starts the TeamSpeak server at startup.

We do this by creating a service file that will set the working directory and execute the server itself.

1. We can begin writing the file for our service by using the nano text editor.

In the terminal, run the following command to begin writing the service.

sudo nano /etc/systemd/system/teamspeak3.service

2. Within this file, enter the following lines of text.

This text will tell the service manager what file it needs to execute and the directory it needs to work out of.

[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
User=pi
WorkingDirectory=/home/pi/teamspeak3-server_linux_x86/
ExecStart=/home/pi/teamspeak3-server_linux_x86/ts3server
Restart=on-failure

[Install]
WantedBy=multi-user.target

3. Save the contents of this file by pressing CTRL + X, then Y, followed by the ENTER key.

4. We can now enable our newly created service to start when the system powers on.

All we need to do is run the following command, telling systemctl to enable the service.

sudo systemctl enable teamspeak3

5. If you would like to start the TeamSpeak server up on your Raspberry Pi now, then you can use the following command.

This command tells the service manager that it should start our service immediately.

sudo systemctl start teamspeak3

Conclusion

Throughout this guide, you will have learned how to install the TeamSpeak server to the Raspberry Pi.

We manage to get this software running by utilizing the powerful box86 emulator.

You should also now have a service created for TeamSpeak so that you can start it and stop it with relative ease.

If you have run into issues with getting the TeamSpeak server to run correctly on the Raspberry Pi, please leave a comment below.

Be sure to check out some of our other server projects for the Raspberry Pi.

7 Comments

  1. Avatar for John
    John on

    Hi,
    I get this when trying to run the server. Im kind of a noob so idk what to do
    pi@raspberrypi:~/teamspeak3-server_linux_x86 $ ./ts3server
    -bash: ./ts3server: cannot execute binary file: Exec format error

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi John,

      To me that error indicates that you haven’t installed and set up Box86.

      Please follow our guide on installing box86 to the Raspberry Pi.

      This is the special piece of software that allows us to run x86 software on our ARM based Raspberry Pi’s!

      Cheers,
      Emmet

  2. Avatar for thomy188
    thomy188 on

    Hi,

    There a easy way to update the ts3-server?

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Thommy188,

      Assuming you have followed the tutorial as is, you should able to just re-run the “Installing the TeamSpeak Server to the Raspberry Pi” section again.

      Cheers,
      Emmet

  3. Avatar for Iceyyy
    Iceyyy on

    Hi,

    First of all i would like to thank you for this awesome guide!
    It’s 99% perfect but if you follow it step by step the auto restart function will not work because if you use sudo to create a service only “root” can execute it on startup!

    Here is the solution!

    [Unit]
    Description=TeamSpeak 3 Server
    After=network.target
    
    [Service]
    User=root
    WorkingDirectory=/home/pi/teamspeak3-server_linux_x86/
    ExecStart=/home/pi/teamspeak3-server_linux_x86/ts3server_minimal_runscript.sh
    Restart=always
    
    [Install]
    WantedBy=multi-user.target

    Regards,
    Iceyyy

  4. Avatar for murdocklawless
    murdocklawless on

    how does x86 application is working on arm processor?

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Murdocklawless,

      This is thanks to Box86 emulating the x86 architecture so that we can run it on ARM.

      Simplifying it basically Box86 interprets the software. It will read an x86 instruction, then convert it to the equivalent ARM instruction so that it can run on the processor.

      Of course there is a lot of overhead produced by this as it will never be as fast as a natively compiled ARM program.

      Cheers,
      Emmet

Leave a Reply

Your email address will not be published. Required fields are marked *