TEAMSPEAK 6 SERVER · HOME ASSISTANT · BLUE GLASS

Voice Server Wiki in TS6 Blue.

Standalone documentation dashboard for your TeamSpeak 6 Server Home Assistant App: install, ports, license acceptance, first admin token, persistence, WebQuery pairing with TS6 Manager and update-safe operations.

Voice9987/udp
Filetransfer30033/tcp
WebQuery10080/tcp
Generated2026-04-29

⚡ Minimum Configuration

Use this first, then expose only the required client ports.

license_accepted: true
server_name: "Home Assistant TeamSpeak Server"
voice_port: 9987
filetransfer_port: 30033
query_http_port: 10080

🧭 Runbook Health Matrix

Critical operational checks before you call the server healthy.

LICENSEAccepted
DATA/data/teamspeak6
QUERYPrivate only
🏠

HOME.md

Home

#home

TeamSpeak 6 Server Home Assistant App is your actual voice server as a Home Assistant add-on. This page is the blue TS6 Server Wiki in the same style as the TS6 Manager Wiki.

Important: Server and Manager are two separate components. The server provides voice, file transfer and query. The TS6 Manager connects to this server via the HTTP WebQuery interface.

FieldValue
HA Add-on NameTeamSpeak 6 Server
HA Add-on Slugteamspeak6
Official Upstreamteamspeak/teamspeak6-server
Docker Imageteamspeaksystems/teamspeak6-server
Target Version6.0.0-beta9
Voice Port9987/udp
Filetransfer30033/tcp
HTTP WebQuery10080/tcp
Persistence/data/teamspeak6

Quick Start

Repository: https://codeberg.org/Pol4rFuchs/teamspeak6-ha-app
Add-on:     TeamSpeak 6 Server
Voice:      udp/9987
Files:      tcp/30033
WebQuery:   tcp/10080
Data:       /data/teamspeak6
Rule of thumb: Only expose 9987/udp and optionally 30033/tcp externally. Query ports stay private.
🐳

SOURCES.md

Sources & Docker Images

#sources-docker

This page is tailored to the official TeamSpeak 6 Server beta and your Home Assistant add-on repository.

Source Matrix

SourceRoleLink
Official TS6 ServerUpstream server, releases, README, CONFIG.mdGitHub
Official Docker ImageContainer image for Docker/HA add-on buildDocker Hub
Docker TagsArchitecture and version tagsTags
Codeberg Add-on RepoYour Home Assistant add-on repositoryCodeberg
GitHub MirrorGitHub repo link from READMEGitHub
Home Assistant Add-onsSupervisor/add-on platformHome Assistant

Official Image Status

  • teamspeaksystems/teamspeak6-server:latest points to the current beta.
  • teamspeaksystems/teamspeak6-server:6.0.0-beta9 is the versioned beta-9 tag.
  • Docker Hub lists images for linux/amd64 and linux/arm64 under both latest and 6.0.0-beta9.
docker pull teamspeaksystems/teamspeak6-server:6.0.0-beta9
This means the old community ARM workaround is no longer required for your HA add-on, as long as your build/config points to the official multi-arch image.
🧪

BETA.md

Beta Status & Limits

#beta-status

TeamSpeak 6 Server is currently released as a beta. For a production Home Assistant add-on this means: updates are important, but backup and rollback remain mandatory.

Key Beta Points

TopicPractical Impact
Beta SoftwareFeatures and behavior may change; check logs after updates.
TS3 LicensesTeamSpeak 3 Server licenses are not compatible with TeamSpeak 6 Server.
MigrationThere is currently no official direct migration path from TS3 Server to TS6 Server.
Beta LicenseThe server ships with a beta license; larger TS6 licenses are currently not generally upgradable.
v6.0.0-beta9Brings native ARM64 support and several server fixes.

Update Note for Your Add-on

# Pin to a specific version instead of floating latest
teamspeaksystems/teamspeak6-server:6.0.0-beta9
Pinning is cleaner: For HA add-ons, a versioned image tag is more reproducible than latest.
🚀

INSTALLATION.md

Installation

#installation

Step 1 — Add Repository to Home Assistant

  1. Open Home Assistant.
  2. Open Settings → Add-ons → Add-on Store.
  3. Click ⋮ → Repositories in the top right.
  4. Paste this URL:
https://codeberg.org/Pol4rFuchs/teamspeak6-ha-app
  1. Click Add and close the dialog.

One-Click Badge

Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.

Step 2 — Install the Add-on

  1. Search for TeamSpeak 6 Server.
  2. Open the add-on.
  3. Click Install.
  4. Wait until the download/build is complete.

Step 3 — Accept the License

In the add-on Configuration tab, the TeamSpeak license must be accepted.

license_accepted: true

Step 4 — Start

  1. Click Save.
  2. Go back to Info.
  3. Click Start.
  4. Open the log and check for token, ports, and errors.
⚙️

CONFIGURATION.md

Add-on Configuration

#configuration

All practical values should be configurable in Home Assistant via the add-on configuration. Internally, these are mapped to TeamSpeak server parameters, environment variables, or a configuration file.

Basic Server Settings

OptionDefaultDescription
server_nameHome Assistant TeamSpeak ServerName visible in the client.
server_passwordemptyJoin password. Empty means open server.
max_clients32Maximum concurrent clients.
welcome_messageWelcome to our TeamSpeak Server!Greeting shown on connect.

License & Admin

OptionDefaultDescription
license_acceptedfalseMust be true, otherwise the server will not start.
query_admin_passwordemptyPassword for serveradmin. Empty = auto-generated, retrieve from log.
log_level30 Critical · 1 Error · 2 Warning · 3 Info · 4 Debug.

Port Options

OptionDefaultProtocolPurpose
voice_port9987UDPVoice connections.
filetransfer_port30033TCPFile transfers.
query_port10011TCPRaw ServerQuery.
query_ssh_port10022TCPSSH ServerQuery.
query_http_port10080TCPHTTP WebQuery; required for TS6 Manager.

Official Server Environment Mapping

TS6 VariableDescriptionHA Option
TSSERVER_LICENSE_ACCEPTEDLicense acceptance: accept or 1.license_accepted
TSSERVER_DEFAULT_PORTDefault UDP voice port.voice_port
TSSERVER_FILE_TRANSFER_PORTTCP filetransfer port.filetransfer_port
TSSERVER_QUERY_HTTP_ENABLEDEnable HTTP query interface.Keep active for Manager operation
TSSERVER_QUERY_HTTP_PORTHTTP WebQuery port.query_http_port
TSSERVER_QUERY_ADMIN_PASSWORDserveradmin query password.query_admin_password
When changing ports, the Configuration tab and Network tab must match logically. File transfer in particular is sensitive when internal port and published host port diverge.
🌐

NETWORKING.md

Ports & Networking

#ports-networking

Default Port Matrix

PortProtocolPurposeExpose externally?
9987UDPVoice port for TeamSpeak clients.✅ Yes
30033TCPFile transfer.✅ Optional
10011TCPRaw ServerQuery.⛔ No
10022TCPSSH ServerQuery.⛔ No
10080TCPHTTP WebQuery / Manager connection.⛔ No

Router Port Forwarding

UDP  9987  -> <HA-IP>:9987
TCP 30033  -> <HA-IP>:30033   # optional filetransfer

TS6 Manager Connection

TS6 Manager Web UI:  http://<HA-IP>:8066
TS6 Server WebQuery: http://<HA-IP>:10080
Not public: 10080 is the management access for WebQuery. It belongs in LAN/VLAN only, accessible to trusted services like TS6 Manager.

LAN Smoke Tests

# Voice port is UDP: best tested externally via client.
# Test HTTP WebQuery locally:
curl -I http://<HA-IP>:10080
🔑

FIRST-START.md

First Start & Admin Token

#first-start-token

Finding the Privilege Key

On first start, the server generates a one-time Privilege Key for server admin rights in the TeamSpeak client.

TeamSpeak 6 Server Add-on → Log tab → search for token=

token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Using the Privilege Key

  1. Connect with the TeamSpeak 6 client to <HA-IP>:9987.
  2. In the client, open Permissions → Use Privilege Key.
  3. Paste the token and confirm.
Save immediately: The token is one-time only and only visible on first start or when regenerated.

ServerQuery Admin

For query/automation, the built-in serveradmin account is available. If no password was set, the generated password must be retrieved from the log.

ServerAdmin password: <generated-password>

Generate a New Privilege Key via ServerQuery

telnet <HA-IP> 10011
login serveradmin <query-password>
use sid=1
tokenadd tokentype=0 tokenid1=6 tokenid2=0
🎛️

MANAGER.md

TS6 Manager Compatibility

#manager-compatibility

This server wiki pairs directly with the TS6 Manager Wiki. The Manager is the admin web panel, this server is the actual voice server.

Pairing Matrix

ComponentPortRole
TeamSpeak 6 Server9987/udpClients connect here.
TeamSpeak 6 Server10080/tcpHTTP WebQuery API for TS6 Manager.
TS6 Manager Add-on8066/tcpWeb interface in the browser.

Manager Connection Profile

Host:           <HA-IP> or <TS6-SERVER-IP>
WebQuery Port: 10080
API/Auth:       serveradmin / API-Key / WebQuery credentials

Common Errors

  • Manager points to 8066 instead of 10080.
  • WebQuery HTTP is not enabled.
  • Firewall/VLAN blocks Manager → Server.
  • Query port was changed but Manager profile was not updated.
  • Query admin password was lost after update/restore.
💾

BACKUP.md

Data Persistence & Backup

#data-backup

Persistent Data Path

Server state must reside under /data/teamspeak6 so that updates do not lose channels, clients, permissions, or server configuration.

/data/teamspeak6/
├── ts6server.sqlitedb
├── ts6server.sqlitedb-wal
├── ts6server.sqlitedb-shm
├── tsserver.yaml / ts6.ini
├── serveradmin_password
├── query_ip_allowlist.txt
├── query_ip_denylist.txt
└── logs/
    └── ts6server_*.log

What Is Critical?

File/PathImportanceWhy
ts6server.sqlitedbVery highVirtual servers, channels, permissions, client data.
serveradmin_passwordHighQuery admin access.
tsserver.yaml / ts6.iniHighGenerated runtime configuration.
logs/MediumDebugging, token retrieval, audit.

Home Assistant Backup

Settings → System → Backups → Create Backup
Create an HA backup before every image switch or beta update. For TS6, this is not a luxury but your rollback strategy.
📁

PROJECT.md

Project Structure

#project-structure

Recommended Repo Layout

teamspeak6-ha-app/
├── repository.yaml
├── README.md
├── READMEeng.md
├── READMEger.md
└── teamspeak6/
    ├── config.yaml
    ├── build.yaml
    ├── Dockerfile
    ├── DOCS.md
    ├── CHANGELOG.md
    ├── icon.png
    ├── logo.png
    ├── translations/
    │   └── en.yaml
    └── rootfs/
        └── run.sh

File Roles

FileRole
repository.yamlMarks the repo as a Home Assistant add-on repository.
teamspeak6/config.yamlAdd-on metadata, schema, ports, image, HA UI.
teamspeak6/build.yamlBuild source per architecture, ideally the official multi-arch image.
teamspeak6/DockerfileWrapper around the TS6 server image with HA start logic.
teamspeak6/rootfs/run.shReads add-on options, generates config, starts the server.
translations/en.yamlLabels and descriptions in the HA config UI.

Image Switch Guard

# Check before switching from community image to official image:
[ ] /data/teamspeak6 backup exists
[ ] Data path correctly mounted in new image
[ ] Server starts with same SQLite DB
[ ] Ports are unchanged
[ ] Query/admin access works
[ ] Client can join
[ ] TS6 Manager can reach WebQuery
🔐

SECURITY.md

Security Notes

#security

Security Baseline

  • Only voice port public: 9987/udp.
  • File transfer optional: 30033/tcp, only if needed.
  • Query private: 10011, 10022, 10080 never exposed to the internet.
  • Secure the query admin password and never commit it to Git.
  • Save the Privilege Key immediately and do not store it publicly after use.
  • Backups before updates, because beta software and server data are critical.

Query Allowlist

When restricting query access, make sure the HA host and the TS6 Manager container remain reachable.

query_ip_allowlist.txt
# Example
127.0.0.1
<HA-IP>
<Manager-IP>
The allowlist does not protect against incorrect port forwarding in the router. Router/NAT/firewall remain the first line of defense.
🛠️

TROUBLESHOOTING.md

Troubleshooting

#troubleshooting

Server Does Not Start

SymptomCauseFix
license check failedLicense not accepted.Set license_accepted: true and save.
bind failedPort already in use.Change port or stop the conflicting service.
permission deniedData path not writable.Check /data/teamspeak6 and the start script.
database-FehlerSQLite path, WAL/SHM, or permission issue.Check backup, stop add-on, inspect DB files.

Missed the Privilege Key

  1. Check the full log.
  2. If the token is truly gone: regenerate via ServerQuery.
  3. Use the new token in the client immediately.
telnet <HA-IP> 10011
login serveradmin <query-password>
use sid=1
tokenadd tokentype=0 tokenid1=6 tokenid2=0

Clients Cannot Connect Externally

  • UDP 9987 forwarded on the router?
  • Correct public IP or domain used?
  • No double NAT/firewall rule blocking?
  • Host port and container port match?
  • TeamSpeak client actually using domain:9987 or the default port?

TS6 Manager Does Not Connect

  • HTTP WebQuery on 10080 active?
  • Manager points to server IP, not localhost in the wrong container?
  • Query admin/API key correct?
  • VLAN/firewall between HA and TS6 server open?
🧰

MAINTENANCE.md

Update & Rollback Runbook

#maintenance

Before Update

[ ] Home Assistant backup created
[ ] /data/teamspeak6 exists
[ ] ts6server.sqlitedb exists
[ ] Query admin password saved
[ ] Privilege/admin access in client works
[ ] Current image tag noted
[ ] Ports/network tab documented

Update

  1. Stop the add-on or run the HA update directly.
  2. Set the image to the new versioned tag, do not blindly force latest.
  3. Start the add-on.
  4. Check the log for license, DB migration, port bindings, and query.
  5. Connect with a client.
  6. Test TS6 Manager against 10080.

Rollback

  1. Stop the add-on.
  2. Restore the HA backup.
  3. Optionally reset the image tag.
  4. Start the add-on.
  5. Verify client join, channel structure, permissions, and query.
For server data, rollback is only clean when database and image version match. That is why you back up right before updating.
📝

CHANGELOG.md

Version Notes

#changelog

Home Assistant App

ComponentVersionNote
teamspeak6-ha-appv1.1.2Version from your README/badge.
TeamSpeak 6 Server6.0.0-beta9Current target from your README and official upstream.
Docker Imageteamspeaksystems/teamspeak6-server:6.0.0-beta9Versioned official container tag.

v6.0.0-beta9 Highlights

  • Native ARM64 support.
  • Improved server migration notifications for clients.
  • Crash fix on flush with invalid database connections.
  • S3 performance optimization.
  • Updated default license.
⚠️

LIMITATIONS.md

Known Limitations

#known-limitations

No HA Ingress Support

The TeamSpeak 6 Server has no web UI, so Ingress is not applicable. Management is done via the TS6 Manager add-on or via ServerQuery.

Beta Software

TeamSpeak 6 Server is beta software. Features, configuration keys, and database schemas may change between versions. Always back up before updating.

No TS3 → TS6 Migration

There is currently no official migration path from TeamSpeak 3 Server to TeamSpeak 6 Server. Channels, permissions, and client data cannot be transferred.

No armhf / armv7 / i386 Support

The add-on only supports amd64 and aarch64. The official Docker image provides multi-arch builds for these two platforms only.

Single Virtual Server

The beta license limits the server to a single virtual server instance. Multi-server hosting is not available in the current beta.

Query Ports Must Stay Private

Ports 10011, 10022, and 10080 must never be exposed to the internet. They provide full administrative access to the server and have no built-in rate limiting or brute force protection beyond the allowlist.

📜

LEGAL.md

Disclaimer & License

#disclaimer-license

Disclaimer

This is an unofficial, community-maintained Home Assistant add-on. Not affiliated with or endorsed by TeamSpeak Systems, Inc.

Wrapper License

Apache License 2.0

Your README states Apache 2.0 for the add-on wrapper. The TeamSpeak 6 Server itself is subject to TeamSpeak licensing terms.

Useful Links