Skip to main content
The easiest and recommended way to run the TeamSpeak 6 Server is with Docker. It provides an isolated, portable, and easily manageable environment, making setup and maintenance straightforward.

Prerequisites

Before you begin, ensure you have Docker installed on your system:

Installation Methods

Quick Start with docker run

For a quick start, you can use the docker run command. This method is ideal for testing or simple deployments.
1

Run the TeamSpeak 6 Server container

Execute the following command to start the server in detached mode:
docker run -d \
  --name teamspeak-server \
  -p 9987:9987/udp \
  -p 30033:30033 \
  -e TSSERVER_LICENSE_ACCEPTED=accept \
  -v teamspeak-data:/var/tsserver/ \
  teamspeaksystems/teamspeak6-server:latest
The -d flag runs the container in detached mode (background). The volume teamspeak-data will persist your server data.
2

Retrieve the ServerAdmin privilege key

After starting the container, check the logs to get your ServerAdmin privilege key:
docker logs -f teamspeak-server
Look for a line containing the ServerAdmin privilege key. Save this key securely - you’ll need it to configure your server.
The ServerAdmin privilege key is only shown once in the logs during the first startup. Make sure to save it immediately.
3

Verify the server is running

Check that the container is running:
docker ps | grep teamspeak-server
You should see the container listed with status “Up”.

Managing the Container

Use these commands to manage your TeamSpeak 6 Server container:
docker stop teamspeak-server
Removing the container does NOT delete your data. The data is stored in the teamspeak-data volume. To permanently delete all server data, you must also remove the volume:
docker volume rm teamspeak-data

Port Configuration

The TeamSpeak 6 Server uses the following ports:
PortProtocolPurposeRequired
9987UDPVoice communicationYes
30033TCPFile transfersYes
10080TCPWebQuery (HTTP)Optional
10022TCPServerQuery (SSH)Optional
Important for Docker: When using file transfers, ensure that the internal container port matches the external host port. File transfers rely on clients connecting directly to this port - mismatches will cause connectivity issues.For example, if you map -p 30033:30033, the server will work correctly. But if you map -p 31000:30033, file transfers will fail.

Verification Steps

After installation, verify your server is working correctly:
1

Check container status

docker ps | grep teamspeak-server
The container should be in “Up” status.
2

Test network connectivity

Verify the ports are accessible:
# Check if voice port is listening
nc -uz localhost 9987

# Check if file transfer port is listening
nc -z localhost 30033
You may need to install netcat (nc) if it’s not already available on your system.
3

Connect with TeamSpeak 6 Client

  1. Download the TeamSpeak 6 Client
  2. Open the client and connect to your server using:
    • Address: Your server’s IP or domain
    • Port: 9987 (or your custom port)
  3. Use the ServerAdmin privilege key from the logs to gain admin access

Environment Variables

You can customize your server using environment variables. Here are the most commonly used ones:
VariableDescriptionDefault
TSSERVER_LICENSE_ACCEPTEDAccept the server license (required)-
TSSERVER_DEFAULT_PORTUDP voice port for the server9987
TSSERVER_FILE_TRANSFER_PORTTCP port for file transfers30033
TSSERVER_VOICE_IPIP address to bind voice port to0.0.0.0
TSSERVER_FILE_TRANSFER_IPIP address to bind file transfer port to0.0.0.0
TSSERVER_QUERY_HTTP_ENABLEDEnable WebQuery (HTTP) interfacefalse
TSSERVER_QUERY_SSH_ENABLEDEnable ServerQuery (SSH) interfacefalse
TSSERVER_QUERY_ADMIN_PASSWORDSet a custom serveradmin password-
TSSERVER_DATABASE_PLUGINDatabase backend (sqlite3 or mariadb)sqlite3
For a complete list of configuration options, see the Configuration documentation.

Troubleshooting

The most common cause is not accepting the license. Ensure you have:
-e TSSERVER_LICENSE_ACCEPTED=accept
Check the logs for the exact error:
docker logs teamspeak-server
  1. Verify the container is running: docker ps
  2. Check if ports are properly mapped: docker port teamspeak-server
  3. Ensure your firewall allows connections on ports 9987/udp and 30033/tcp
  4. Verify you’re using the correct server address and port
Ensure the file transfer port mapping is correct. The internal and external ports must match:
# Correct
-p 30033:30033

# Incorrect - will cause file transfer issues
-p 31000:30033
If you lost your ServerAdmin key, you can set a custom password using:
-e TSSERVER_QUERY_ADMIN_PASSWORD=your_password
Then restart the container and use the ServerQuery interface to generate a new privilege key.

Next Steps

Configuration

Learn how to customize your server settings

Server Management

Manage your server and virtual instances

Build docs developers (and LLMs) love