Menu
 

TeamSpeak 6 Docker Hosting Guide

Hosting TeamSpeak 6 with Docker & Modern Orchestration

In 2026, Docker has become the preferred way to host TeamSpeak 6 servers. Containerization provides isolated environments, easy updates, and better resource management compared to traditional "bare metal" installations.

๐Ÿณ Why Docker for TS6?

TeamSpeak 6's new features (Web Query, Screen Sharing) require more complex networking and dependency management. Docker simplifies this by bundling everything into a single, portable image that works anywhere.

Prerequisites

  • A Linux VPS (Ubuntu 24.04+ recommended)
  • Docker and Docker Compose installed
  • A domain name for your Web Query (optional but recommended)
  • Ports 9987 (UDP), 10080 (TCP), and 30033 (TCP) open in your firewall

The Docker Compose Setup

We recommend using docker-compose.yml for easy management. This setup includes the TS6 server and an automated backup volume.

docker-compose.yml

services:
  teamspeak6:
    image: teamspeak/teamspeak6-server:latest
    container_name: ts6_server
    restart: always
    ports:
      - "9987:9987/udp"    # Voice
      - "10080:10080"      # Web Query (HTTP)
      - "30033:30033"      # File Transfer
    environment:
      - TS6SERVER_LICENSE=accept
      - TS6SERVER_WEBQUERY_PORT=10080
    volumes:
      - ./ts6_data:/var/ts6server
      - ./ts6_logs:/var/ts6server/logs

volumes:
  ts6_data:
  ts6_logs:

Networking: Handling UDP & TCP

Standard HTTP reverse proxies (like Nginx) often struggle with TeamSpeak's primary traffic because it's UDP. However, the new Web Query (REST API) is standard TCP/HTTP.

Using Traefik for the Web API

If you want to use a domain name (like api.yourserver.com) for your REST API with SSL, add these labels to your service:

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.ts6api.rule=Host(`api.yourserver.com`)"
  - "traefik.http.routers.ts6api.entrypoints=websecure"
  - "traefik.http.routers.ts6api.tls.certresolver=myresolver"
  - "traefik.http.services.ts6api.loadbalancer.server.port=10080"

Performance Tuning in Docker

TeamSpeak is highly sensitive to CPU latency. To ensure crystal-clear audio even under high load, consider "pinning" your TS6 container to specific CPU cores.

CPU Affinity in Compose:

cpuset: "0-1"  # Uses the first two cores of your CPU
cpus: 2.0      # Limits usage to 2 full cores

Securing Your Container

๐Ÿ”’ Hardening Checklist

  • Non-Root User: Ensure the container runs as a standard user, not root. The official image handles this by default.
  • Read-Only Root: If possible, run with read_only: true and only mount specific writable volumes (data, logs).
  • Rate Limiting: Use Docker's network_priority or external firewalls to prevent UDP flood attacks.

Automated Updates

Updating your TS6 server in Docker is a two-command process:

docker-compose pull
docker-compose up -d

Ensure you have Backups before running these commands, as TeamSpeak database migrations are sometimes one-way.

Advanced: Multi-Instance Hosting

With TS6 Communities, you might want to run multiple virtual instances. Docker makes this easy via mapping different ports:

# Instance 1
- "9987:9987/udp"
# Instance 2
- "9988:9987/udp"

Pro Tip: Use Portainer or a similar web GUI to manage your TeamSpeak Docker containers if you prefer not to use the command line for daily monitoring.

Top