TeamSpeak 6 Server Documentation

repository·main·Indexed 22 days ago

https://github.com/teamspeak/teamspeak6-server

Documentation for the TeamSpeak 6 Server, a next-generation voice communication platform in Beta. Includes guides on installation via binaries for Linux and Windows, Docker and Docker Compose deployment, and configuration methods using command-line arguments, environment variables, and tsserver.yaml files. Covers core server parameters, database connections (SQLite and MariaDB), file transfer ports, and query interface configurations for SSH, HTTP, and HTTPS.

Tokens
3.7K
Snippets
8
Records
17
Agent score
33%

What's inside TeamSpeak 6 Server

  1. Configure TeamSpeak 6 Server using multiple methods

    main

    The TeamSpeak 6 server can be configured using three distinct methods. You can use any combination of these, but they are typically used in the following hierarchy:

    1. Command-line flags: Direct arguments passed when starting the server binary.
    2. Environment variables: System environment variables (e.g., TSSERVER_CONFIG_FILE).
    3. tsserver.yaml configuration file: A persistent YAML file containing all server settings.

    When multiple methods are used, the server resolves the configuration based on these inputs.

  2. Configure File Transfer Ports

    main

    The TCP port used for file transfers is configured via --filetransfer-port or TSSERVER_FILE_TRANSFER_PORT (Default: 30033).

    Docker Note: 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 between the container's listening port and the published port will cause connectivity issues.

  3. Run the TeamSpeak 6 Server using binaries

    main

    If you are not using Docker, you can run the server directly on your host operating system.

    On Linux

    1. Make the server binary executable:
    chmod +x tsserver
    1. Run the server and accept the license:
    ./tsserver --accept-license

    On Windows

    1. Open Command Prompt or PowerShell and navigate to the directory containing the extracted server files.
    2. Run the executable and accept the license:
    tsserver.exe
    ./tsserver --accept-license
  4. Run the TeamSpeak 6 Server with Docker Compose

    main

    For long-term deployments, use Docker Compose. This allows for more persistent and manageable configurations.

    Minimal docker-compose.yaml Example

    Create a docker-compose.yaml file with the following content:

    services:
      teamspeak:
        image: teamspeaksystems/teamspeak6-server:latest
        container_name: teamspeak-server
        restart: unless-stopped
        ports:
          - "9987:9987/udp"   # Voice Port
          - "30033:30033/tcp" # File Transfer
          # - "10080:10080/tcp" # Web Query
        environment:
          - TSSERVER_LICENSE_ACCEPTED=accept
        volumes:
          - teamspeak-data:/var/tsserver
    
    volumes:
      teamspeak-data:
        name: teamspeak-data

    Common Docker Compose Commands

    Replace example-compose-sqlite.yaml with your actual filename:

    • Start in detached mode: docker compose -f example-compose-sqlite.yaml up -d
    • Check logs: docker compose -f example-compose-sqlite.yaml logs -f
    • Stop: docker compose -f example-compose-sqlite.yaml stop
    • Start: docker compose -f example-compose-sqlite.yaml start
    • Restart: docker compose -f example-compose-sqlite.yaml restart
    • Down (Remove container): docker compose -f example-compose-sqlite.yaml down (data is kept in the volume)
    • Remove data volume: docker volume rm teamspeak-data (permanently deletes all server data!)
    services:
      teamspeak:
        image: teamspeaksystems/teamspeak6-server:latest
        container_name: teamspeak-server
        restart: unless-stopped
        ports:
          - "9987:9987/udp"   # Voice Port
          - "30033:30033/tcp" # File Transfer
          # - "10080:10080/tcp" # Web Query
        environment:
          - TSSERVER_LICENSE_ACCEPTED=accept
        volumes:
          - teamspeak-data:/var/tsserver
    
    volumes:
      teamspeak-data:
        name: teamspeak-data
  5. Run the TeamSpeak 6 Server with Docker (Quick Start)

    main

    For a quick setup, use the docker run command to start the server in detached mode using a Docker volume for persistence.

    Note: You must set the TSSERVER_LICENSE_ACCEPTED=accept environment variable to start the server.

    Commands

    Start the container:

    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

    Manage the container:

    • Check logs (to find the ServerAdmin privilege key): docker logs -f teamspeak-server
    • Stop: docker stop teamspeak-server
    • Start: docker start teamspeak-server
    • Restart: docker restart teamspeak-server
    • Remove container: docker rm -f teamspeak-server (data is preserved in the volume)
    • Remove data volume: docker volume rm teamspeak-data (permanently deletes all server data!)
    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
  6. Configure the TeamSpeak 6 Server

    main

    You can configure the TeamSpeak 6 Server using three different methods:

    1. Command-Line Arguments: Pass options directly when starting the server (e.g., ./tsserver --default-voice-port 9987). This is ideal for temporary changes or scripting.
    2. Environment Variables: Set variables before starting the server. This is the preferred method for Docker deployments to avoid command-line clutter.
    3. YAML Configuration File: For persistent settings, use a tsserver.yaml file. You can generate a default configuration file by running the server with the --write-config-file flag.

    Commonly configurable settings include network ports (voice, file transfer), database connections (supporting SQLite and MariaDB), IP bindings, and logging options. For a full list of options, use the --help flag.

  7. Example `tsserver.yaml` configuration

    main

    Below is a comprehensive example of a tsserver.yaml file. This covers core server settings, database connection details (using sqlite3), file transfer settings, and query interface configurations (SSH, HTTP, and HTTPS).

    server:
      license-path: .
      default-voice-port: 9987
      voice-ip:
        - 0.0.0.0
        - "::"
      machine-id: ""
      threads-voice-udp: 5
      log-path: logs
      log-append: 0
      no-default-virtual-server: 0
      filetransfer-port: 30033
      filetransfer-ip:
        - 0.0.0.0
        - "::"
      clear-database: 0
      no-permission-update: 0
      http-proxy: ""
      accept-license: accept
      crashdump-path: crashdumps
    
      database:
        plugin: sqlite3
        sql-path: /opt/tsserver/sql/
        sql-create-path: /opt/tsserver/sql/create_sqlite/
        client-keep-days: 30
        config:
          skip-integrity-check: 0
          host: 127.0.0.1
          port: 5432
          socket: ""
          timeout: 10
          name: teamspeak
          username: ""
          password: ""
          connections: 10
          log-queries: 0
    
      query:
        pool-size: 2
        log-timing: 3600
        ip-allow-list: query_ip_allowlist.txt
        ip-block-list: query_ip_denylist.txt
        admin-password: ""
        log-commands: 0
        skip-brute-force-check: 0
        buffer-mb: 20
        documentation-path: serverquerydocs
        timeout: 300
    
        ssh:
          enable: 0
          port: 10022
          ip:
            - 0.0.0.0
            - "::"
          rsa-key: ssh_host_rsa_key
    
        http:
          enable: 0
          port: 10080
          ip:
            - 0.0.0.0
            - "::"
    
        https:
          enable: 0
          port: 10443
          ip:
            - 0.0.0.0
            - "::"
          certificate: ""
          private-key: ""
  8. Reference: File Transfer Parameters

    main

    Parameters for configuring file transfer ports and IP binding.

    | Parameter | Environment Variable | Description |
    |---|---|---|
    | `--filetransfer-port <port>` | `TSSERVER_FILE_TRANSFER_PORT` | The TCP port used for file transfers (Default: 30033). |
    | `--filetransfer-ip <ip>` | `TSSERVER_FILE_TRANSFER_IP` | The address on which to listen for file transfer connections. |