Skip to main content

Get Started in Minutes

This guide will help you launch your first TeamSpeak 6 Server using Docker - the fastest and most reliable way to get started.
New to Docker? Docker provides an isolated environment that makes setup simple and consistent across all platforms. Install Docker if you haven’t already.

Prerequisites

Before you begin, make sure you have:
  • Docker installed on your system (Installation Guide)
  • Port 9987 (UDP) and 30033 (TCP) available on your system
  • Basic command line knowledge

Quick Start with Docker

1

Run the Server

Launch your TeamSpeak 6 Server with a single command:
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
This command:
  • Runs the server in detached mode (-d)
  • Names the container teamspeak-server
  • Opens port 9987/UDP for voice communication
  • Opens port 30033/TCP for file transfers
  • Accepts the license agreement
  • Creates a persistent volume for server data
2

Retrieve Your Admin Credentials

After the server starts, retrieve your ServerAdmin privilege key:
docker logs teamspeak-server
Look for output similar to:
ServerAdmin privilege key created: token=YOUR_PRIVILEGE_KEY_HERE
Save this key immediately! You’ll need it to claim administrator privileges on your server. This key is only displayed once.
3

Connect to Your Server

  1. Download and install the TeamSpeak 6 Client
  2. Open the client and click “Add Server”
  3. Enter your server details:
    • Address: localhost:9987 (or your server’s IP)
    • Nickname: Your preferred display name
  4. Connect to the server
  5. When prompted, use the privilege key from Step 2 to gain admin rights

Managing Your Server

Once your server is running, use these commands to manage it:
# Follow the live server logs
docker logs -f teamspeak-server
Your server data is stored in the teamspeak-data Docker volume, so it persists even when the container is stopped or removed.

Production Setup with Docker Compose

For production deployments, we recommend using Docker Compose for easier management and configuration.
1

Create a docker-compose.yaml File

Create a new file named docker-compose.yaml in your project directory:
services:
  teamspeak:
    image: teamspeaksystems/teamspeak6-server:latest
    container_name: teamspeak-server
    restart: unless-stopped
    ports:
      - "9987:9987/udp"    # Default voice port
      - "30033:30033/tcp"  # File transfer port
      # - "10022:10022/tcp" # (Optional) ServerQuery SSH port
      # - "10080:10080/tcp"  # (Optional) WebQuery port
    environment:
      - TSSERVER_LICENSE_ACCEPTED=accept
      - TSSERVER_DEFAULT_PORT=9987
      - TSSERVER_VOICE_IP=0.0.0.0
      - TSSERVER_FILE_TRANSFER_PORT=30033
      - TSSERVER_FILE_TRANSFER_IP=0.0.0.0
      # - TSSERVER_QUERY_HTTP_ENABLED=true
      # - TSSERVER_QUERY_SSH_ENABLED=false
      # - TSSERVER_MACHINE_ID=my_unique_machine_id
      # - TSSERVER_LOG_PATH=/var/tsserver/logs
      # - TSSERVER_QUERY_ADMIN_PASSWORD=secretpassword
    volumes:
      - teamspeak-data:/var/tsserver

volumes:
  teamspeak-data:
    name: teamspeak-data
Security: Change the default passwords (YourPasswordHere, SuperSecretPassword) to strong, unique passwords before deploying!
2

Start Your Server

Launch your server using Docker Compose:
docker compose up -d
Check the logs to retrieve your admin key:
docker compose logs -f
3

Manage with Docker Compose

Use these commands to manage your deployment:
docker compose stop

Running on Native Systems

If you prefer running the server directly without Docker:
1

Make the Binary Executable

chmod +x tsserver
2

Run the Server

./tsserver --accept-license
The server will start and display your ServerAdmin privilege key in the console.
3

Run in Background (Optional)

To run the server as a daemon:
./tsserver --accept-license --daemon --pid-file /var/run/tsserver.pid

Configuration Options

Want to customize your server? You can configure it using:
  1. Environment Variables - Perfect for Docker deployments
  2. Command-Line Flags - Quick temporary changes
  3. YAML Configuration File - Best for persistent configuration
For a complete list of configuration options, see the Configuration Guide or run ./tsserver --help

Common Configuration Examples

# Using environment variable (Docker)
-e TSSERVER_DEFAULT_PORT=10000

# Using command-line flag (Native)
./tsserver --accept-license --default-voice-port 10000

Troubleshooting

If you see an error about ports being in use:
  1. Check what’s using the port:
    # Linux/Mac
    sudo lsof -i :9987
    
    # Windows
    netstat -ano | findstr :9987
    
  2. Either stop the conflicting service or change the TeamSpeak port:
    docker run -d \
      --name teamspeak-server \
      -p 10000:9987/udp \
      -e TSSERVER_LICENSE_ACCEPTED=accept \
      -v teamspeak-data:/var/tsserver/ \
      teamspeaksystems/teamspeak6-server:latest
    
If you can’t connect to your server:
  1. Verify the server is running:
    docker ps
    
  2. Check the server logs:
    docker logs teamspeak-server
    
  3. Ensure your firewall allows UDP port 9987 and TCP port 30033
  4. If connecting remotely, use your public IP address instead of localhost
If you lost your ServerAdmin privilege key:
  1. You can set a custom admin password using an environment variable:
    docker run -d \
      --name teamspeak-server \
      -p 9987:9987/udp \
      -p 30033:30033 \
      -e TSSERVER_LICENSE_ACCEPTED=accept \
      -e TSSERVER_QUERY_ADMIN_PASSWORD=your_secure_password \
      -v teamspeak-data:/var/tsserver/ \
      teamspeaksystems/teamspeak6-server:latest
    
  2. Use this password to authenticate via ServerQuery
If your Docker container keeps restarting:
  1. Check the logs for errors:
    docker logs teamspeak-server
    
  2. Common issues:
    • License not accepted (add -e TSSERVER_LICENSE_ACCEPTED=accept)
    • Database connection issues (check MariaDB container is healthy)
    • Port conflicts (change the port mappings)

Data Backup

Important: Always backup your server data before performing updates or major changes!

Backup Docker Volume

# Create a backup of your server data
docker run --rm \
  -v teamspeak-data:/data \
  -v $(pwd):/backup \
  ubuntu tar czf /backup/teamspeak-backup-$(date +%Y%m%d).tar.gz /data

Restore from Backup

# Restore data from backup
docker run --rm \
  -v teamspeak-data:/data \
  -v $(pwd):/backup \
  ubuntu tar xzf /backup/teamspeak-backup-YYYYMMDD.tar.gz -C /

Cleaning Up

If you need to remove your server completely:
# Stop and remove the container
docker rm -f teamspeak-server

# Remove the data volume (WARNING: This deletes all server data!)
docker volume rm teamspeak-data

Next Steps

Now that your server is running:

Configure Your Server

Explore advanced configuration options

Server Query API

Learn how to manage your server programmatically

Database Setup

Configure MariaDB for production deployments

Best Practices

Security and optimization tips
Have questions? Join the TeamSpeak Community Forum for help and discussions!

Build docs developers (and LLMs) love