Teamspeak6 Server

Applications
Report Issue

TeamSpeak offers the ideal voice communication for gaming, education and training, internal business communication, and staying in touch with friends and family.

Contributors:
README

TeamSpeak 6 Server

[!CAUTION] TeamSpeak 6 Server is currently in beta. Expect frequent updates and potential instability

Official Website

TeamSpeak 6 is the next-generation voice communication platform for gaming and communities.

Notice

TeamSpeak 6 Server is currently in beta. Expect frequent updates and potential instability

Server Ports

You can use any available ports. The most important defaults are shown below:

Port Default Description
Voice Port 9987 Main voice server port
File Transfer Port 30033 File transfers (Optional/admin)
Query SSH 10022 Server Query SSH interface (Optional/admin)
Query HTTP 10080 Server Query HTTP interface (Optional/admin)
Query HTTPS 10443 Server Query HTTPS interface (Optional/admin)

Notes

  • Admin Rights: On first launch, copy the generated key (token) from the console to claim server admin in your TeamSpeak 6 client.
  • Beta Limits: TeamSpeak 6 server beta is limited to 5 users.
  • Query Interfaces: Enable/disable additional query interfaces (SSH/HTTP/HTTPS) in the server variables.
  • S3 File Transfer: Leave S3 variables blank unless you wish use S3-compatible storage.
  • Certificates: For HTTPS query, upload your cert/key to /home/container and enter the filenames in their variables.
  • More Info: TeamSpeak 6 Beta Announcements

ARM64

  • The ARM64 egg may not perform as expected due to the AMD64 to ARM64 emulaton.
Docker Images (1)
Name Image
ghcr.io/ptero-eggs/yolks:debian ghcr.io/ptero-eggs/yolks:debian
Startup Command
./tsserver --default-voice-port={{SERVER_PORT}}
Variables (18)

Server Query Admin Password

The password for the server query admin user.

Environment:
TSSERVER_QUERY_ADMIN_PASSWORD
Default:
ChangeMe
User Viewable:
User Editable:
Rules:
nullable|string|max:32

Server Version

The version of Teamspeak 3 to use when running the server.

Environment:
TS_VERSION
Default:
latest
User Viewable:
User Editable:
Rules:
required|string|max:20

Accept TServer License (required)

This is for accepting the license

Environment:
TSSERVER_LICENSE_ACCEPTED
Default:
accept
User Viewable:
User Editable:
Rules:
nullable|string|max:20

File Transfer Port

The Teamspeak file transfer port (can be changed).

Environment:
TSSERVER_FILE_TRANSFER_PORT
Default:
30033
User Viewable:
User Editable:
Rules:
required|string|max:10

Enable SSH Query

Enable the SSH query interface (set to 1 to enable).

Environment:
TSSERVER_QUERY_SSH_ENABLED
Default:
0
User Viewable:
User Editable:
Rules:
required|integer|between:0,1

SSH Query Port

The port for the SSH query interface (can be changed).

Environment:
TSSERVER_QUERY_SSH_PORT
Default:
10022
User Viewable:
User Editable:
Rules:
required|integer|between:1,65535

Enable HTTP Query

Enable the HTTP query interface (set to 1 to enable).

Environment:
TSSERVER_QUERY_HTTP_ENABLED
Default:
0
User Viewable:
User Editable:
Rules:
required|integer|between:0,1

HTTP Query Port

The port for the HTTP query interface (can be changed).

Environment:
TSSERVER_QUERY_HTTP_PORT
Default:
10080
User Viewable:
User Editable:
Rules:
required|integer|between:1,65535

Enable HTTPS Query

Enable the HTTPS query interface (set to 1 to enable).

Environment:
TSSERVER_QUERY_HTTPS_ENABLED
Default:
0
User Viewable:
User Editable:
Rules:
required|integer|between:0,1

HTTPS Query Port

The port for the HTTPS query interface (can be changed).

Environment:
TSSERVER_QUERY_HTTPS_PORT
Default:
10443
User Viewable:
User Editable:
Rules:
required|integer|between:1,65535

Enable S3 File Transfer

Enable S3 file transfer (set to 1 to enable).

Environment:
TSSERVER_S3FT_ENABLED
Default:
0
User Viewable:
User Editable:
Rules:
required|integer|between:0,1

S3 Access Key

S3 Access Key for file transfers.

Environment:
TSSERVER_S3FT_ACCESS_KEY
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:100

S3 Secret Key

S3 Secret Key for file transfers.

Environment:
TSSERVER_S3FT_SECRET_KEY
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:100

S3 Bucket

S3 Bucket name for file transfers.

Environment:
TSSERVER_S3FT_BUCKET
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:100

S3 Domain

S3 Domain/endpoint for file transfers.

Environment:
TSSERVER_S3FT_DOMAIN
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:100

S3 Region

S3 region for file transfers.

Environment:
TSSERVER_S3FT_REGION
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:100

HTTPS Certificate Filename

Place the certificate file in /home/container and enter the filename here, e.g; ts6_https_cert.pem

Environment:
TSSERVER_QUERY_HTTPS_CERT
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:255

HTTPS Private Key Filename

Place the private key file in /home/container and enter the filename here, e.g: ts6_https_key.pem

Environment:
TSSERVER_QUERY_HTTPS_PRIVATE_KEY
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:255
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
cd /mnt/server

apt-get update
apt-get install -y jq bzip2

ver="$TS_VERSION"
if [ -z "$ver" ] || [ "$ver" = "latest" ]; then
    json=$(curl -sSL https://api.github.com/repos/teamspeak/teamspeak6-server/releases/latest)
else
    json=$(curl -sSL https://api.github.com/repos/teamspeak/teamspeak6-server/releases/tags/$ver 2>/dev/null)
    if echo "$json" | grep -q "Not Found"; then
        altver=$(echo "$ver" | sed 's/-/\//')
        json=$(curl -sSL https://api.github.com/repos/teamspeak/teamspeak6-server/releases/tags/$altver 2>/dev/null)
    fi
fi

if echo "$json" | grep -q "Not Found"; then
    echo "Not found: $ver"
    exit 1
fi

url=$(echo "$json" | jq -r '.assets | map(select((.name | contains("linux_amd64")) and (.name | endswith(".tar.bz2"))))[0].browser_download_url')

if [ -z "$url" ] || [ "$url" = "null" ]; then
    echo "Not found: $ver"
    exit 1
fi

curl -sSL "$url" | tar xj --strip-components=1
echo "Installed"