Skip to main content
This page covers the essential server configuration parameters for TeamSpeak 6 Server. All parameters can be set via command-line flags, environment variables, or the YAML configuration file.

License Configuration

Before running the server, you must accept the license agreement.
--accept-license
boolean
default:"false"
Confirms you have read and accepted the server license agreement. Required to start the server.Environment Variable: TSSERVER_LICENSE_ACCEPTED (set to 1 or accept)
--license-path
string
default:"."
Directory path where the server will look for the licensekey.dat file.Environment Variable: TSSERVER_LICENSE_PATH
./tsserver --accept-license --license-path /opt/teamspeak/license
The server will not start without accepting the license agreement. Read the license terms at /opt/teamspeak/LICENSE before accepting.

Core Server Settings

Voice Port Configuration

--default-voice-port
integer
default:"9987"
Permanently sets the default UDP voice port for the first virtual server created.Range: 1-65535
Environment Variable: TSSERVER_DEFAULT_PORT
--voice-ip
string
default:"[0.0.0.0, ::]"
IP address(es) for the server to bind the voice port to. Supports both IPv4 and IPv6.Environment Variable: TSSERVER_VOICE_IP
./tsserver --default-voice-port 9987 --voice-ip 0.0.0.0

File Transfer Settings

--filetransfer-port
integer
default:"30033"
The TCP port used for file transfers.Range: 1-65535
Environment Variable: TSSERVER_FILE_TRANSFER_PORT
--filetransfer-ip
string
default:"[0.0.0.0, ::]"
The address on which to listen for file transfer connections.Environment Variable: TSSERVER_FILE_TRANSFER_IP
Docker Port Mapping: When running inside a Docker container, 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.Example: -p 30033:30033/tcp (not -p 30034:30033/tcp)
./tsserver --filetransfer-port 30033 --filetransfer-ip 0.0.0.0

Machine ID

--machine-id
string
default:""
A string to distinguish this instance from other instances using the same database. Useful when running multiple servers with a shared database.Environment Variable: TSSERVER_MACHINE_ID
export TSSERVER_MACHINE_ID=server-1

Voice Processing Threads

--threads-voice-udp
integer
default:"5"
Number of threads to use for voice processing. Increase for servers with high user counts.Range: 1-16
Environment Variable: TSSERVER_VOICE_UDP_THREADS
For most deployments, the default of 5 threads is sufficient. Only increase this on high-capacity servers with many concurrent users.

Logging Configuration

--log-path
string
default:"logs"
Path to the directory where log files are stored.Environment Variable: TSSERVER_LOG_PATH
--log-append
boolean
default:"false"
Write one ever-growing log file per virtual server instead of rotating daily.Environment Variable: TSSERVER_APPEND_LOGS
./tsserver --log-path /var/log/teamspeak --log-append

Virtual Server Management

--no-default-virtual-server
boolean
default:"false"
If specified, no default server is created even if no server exists in the database.Environment Variable: TSSERVER_NO_DEFAULT_SERVER
By default, TeamSpeak will create a default virtual server if none exists in the database. Use this flag if you plan to create servers manually via ServerQuery.

Advanced Settings

HTTP Proxy

--http-proxy
string
default:""
Proxy server used for external connections (e.g., license validation, accounting).Environment Variable: TSSERVER_HTTP_PROXY
export TSSERVER_HTTP_PROXY=http://proxy.example.com:8080

Crash Dumps

--crashdump-path
string
default:"crashdumps"
Path where crash dumps should be written for debugging purposes.Environment Variable: TSSERVER_CRASHDUMP_PATH

Daemon Mode

--daemon
boolean
default:"false"
Run the server in the background (daemon mode). Linux only.Environment Variable: TSSERVER_DAEMON
--pid-file
string
default:""
File to write the process ID to when running in daemon mode.Environment Variable: TSSERVER_PID_FILE
./tsserver --daemon --pid-file /var/run/tsserver.pid

Performance Options

--hints-enabled
boolean
default:"false"
Enable permission hints. Can impact performance on large servers with complex permission structures.Environment Variable: TSSERVER_HINTS_ENABLED

GeoIP Database

--maxmind-db-path
string
default:""
Path to the MaxMind GeoIP database for geographic client information.Environment Variable: TSSERVER_MAXMIND_DB_PATH
export TSSERVER_MAXMIND_DB_PATH=/opt/teamspeak/GeoLite2-City.mmdb

Administrative Domain

--administrative-domain
string
default:""
Administrative domain for internal or regulatory identification purposes.Environment Variable: TSSERVER_ADMINISTRATIVE_DOMAIN

Configuration File Management

--config-file
string
default:"tsserver.yaml"
Specifies the configuration file to load.Environment Variable: TSSERVER_CONFIG_FILE
--write-config-file
boolean
default:"false"
Writes the current configuration (from CLI flags and environment variables) to the config file.
# Generate config file from current settings
./tsserver --accept-license --default-voice-port 9987 --write-config-file

Complete Example

services:
  teamspeak:
    image: teamspeaksystems/teamspeak6-server:latest
    container_name: teamspeak-server
    restart: unless-stopped
    ports:
      - "9987:9987/udp"
      - "30033:30033/tcp"
    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_LOG_PATH=/var/tsserver/logs
      - TSSERVER_VOICE_UDP_THREADS=5
    volumes:
      - teamspeak-data:/var/tsserver

volumes:
  teamspeak-data:

Next Steps

Database Configuration

Set up SQLite or MariaDB

Ports & Networking

Configure ServerQuery and networking

Build docs developers (and LLMs) love