Build teamspeak3 voice server on Synology

What is TeamSpeak?

TeamSpeak (abbreviated as TS) is a team voice communication tool, but it has more functions and is easier to use than ordinary communication tools. It consists of two parts: server-side program and client-side program. If you don’t want to set up a TS server yourself, you only need to download the client-side program. Teamspeak relies on advanced architecture, convenient and flexible application functions, especially leading multimedia technology, to provide users with a powerful network communication tool.

Installation

Build database

Lao Su used Synology’s own MariaDB 10 database.

Create an empty database named teamspeak in phpMyAdmin.

For ease of explanation, assume the database password is 123456

So based on the above settings, the final database-related parameters are as follows:

  • Database host: 192.168.0.197, consistent with Synology host IP;
  • Database port: 3307;
  • Database user: teamspeak
  • Database password: 123456
  • Database name: teamspeak, because the same name as the user is checked;

Install image

Install using Docker on Synology.

Search for teamspeak in the registry, select the first teamspeak, and select latest for the version.

At the time of writing this article, the latest version corresponds to 3.13.7;

Volume

In the docker folder, create a new folder teamspeak and create a subfolder data inside it

Port

As long as the local port does not conflict, if you are not sure, you can check it with the command

# Check port occupancy
netstat -tunlp | grep port number
Folder Mount path Description
docker/teamspeak/data /var/ts3server Storage settings, logs, etc.
Local port Container port Protocol
9987 9987 UDP
30033 30033 TCP
10011 10011 TCP

A note about the TeamSpeak 3 port

The above picture is taken from: https://support.teamspeak.com/hc/en-us/articles/360002712257-Which-ports-does-the-TeamSpeak-3-server-use

Environment

Variable Value
TS3SERVER_DB_PLUGIN Control the database type, set to TS3SERVER_DB_WAITUNTILREADY
TS3SERVER_DB_SQLCREATEPATH sql The path of the script, set to create_mariadb
TS3SERVER_DB_HOST Database host address
TS3SERVER_DB_PORT Database host port
TS3SERVER_DB_USER Database user
TS3SERVER_DB_PASSWORD Database password
TS3SERVER_DB_NAME Database name
TS3SERVER_DB_WAITUNTILREADY Database waiting time, set to 30
TS3SERVER_LICENSE Set to accept

For more environment variables, please refer to the official documentation: https://github.com/docker-library/docs/tree/master/teamspeak#environment-variables

Command line installation

If you are familiar with the command line, it may be faster to use docker cli

# Create new folder teamspeak and subdirectories
mkdir -p /volume1/docker/teamspeak/data

# Enter the teamspeak directory
cd /volume1/docker/teamspeak

# Run container
docker run -d \
   --restart always \
   --name teamspeak \
   -p 9987:9987/udp \
   -p 30033:30033 \
   -p 10011:10011 \
   -v $(pwd)/data:/var/ts3server \
   -e TS3SERVER_DB_PLUGIN=ts3db_mariadb \
   -e TS3SERVER_DB_SQLCREATEPATH=create_mariadb \
   -e TS3SERVER_DB_HOST=192.168.0.197 \
   -e TS3SERVER_DB_PORT=3307 \
   -e TS3SERVER_DB_USER=teamspeak \
   -e TS3SERVER_DB_PASSWORD=123456 \
   -e TS3SERVER_DB_NAME=teamspeak \
   -e TS3SERVER_DB_WAITUNTILREADY=30 \
   -e TS3SERVER_LICENSE=accept \
   teamspeak

You can also use docker-compose to install it and save the following content as the docker-compose.yml file

version: '3.1'

services:
  teamspeak:
    image: teamspeak
    container_name: teamspeak
    restart: always
    ports:
      - 9987:9987/udp
      - 30033:30033
      - 10011:10011
    volumes:
      - ./data:/var/ts3server
    environment:
      TS3SERVER_DB_PLUGIN: ts3db_mariadb
      TS3SERVER_DB_SQLCREATEPATH: create_mariadb
      TS3SERVER_DB_HOST: 192.168.0.197
      TS3SERVER_DB_PORT: 3307
      TS3SERVER_DB_USER: teamspeak
      TS3SERVER_DB_PASSWORD: 123456
      TS3SERVER_DB_NAME: teamspeak
      TS3SERVER_DB_WAITUNTILREADY: 30
      TS3SERVER_LICENSE: accept

Then execute the following command

# Create new folder teamspeak and subdirectories
mkdir -p /volume1/docker/teamspeak/{<!-- -->data,mysql}

# Enter the teamspeak directory
cd /volume1/docker/teamspeak

#Put docker-compose.yml into the current directory

# one-button start
docker-compose up -d

Run

After the container is successfully started, you will see in the log

token=bfIo9mvaU + lrhwTDBjj0zI7TfOOwoOGyD9AqD6Z2

Pull up and you will see the administrator account and password.

loginname= "serveradmin", password= "ZKowB7sM"
apikey= "BACDrGFPK9fKhyyTC76MjhZW6xpHlKbtPnVvIfN"

Client

Client download address: https://teamspeak.com/en/downloads/

When running the client for the first time, fill in serveradmin in Nickname and fill in the value of password in Server Password

Fill in Privillege key with the token value,

This token value is one-time use

After successful connection

The server log will show

For other custom user connections, there is no need to fill in Server Password

Direct connection is enough, but the default Server Groups is different

Reference documentation

TeamSpeak Systems GmbH
Address: https://github.com/TeamSpeak-Systems

Home | TeamSpeak
Address: https://teamspeak.com/zh-CN/

TeamSpeak – The Future of Online Communication
Address: https://new.teamspeak.com/

TeamSpeak-Systems/ts-services at beta-58rc20
Address: https://github.com/TeamSpeak-Systems/ts-services/tree/beta-58rc20