4.2 KiB
TeamSpeak 3 Server — silico.ca
Install notes and config for the TeamSpeak 3 server running on the Fedora VPS
(vps-93975aa7.vps.ovh.ca). The TeamSpeak 5 desktop client talks to TS3 servers,
so "latest" here is TeamSpeak 3 Server 3.13.7 — the current stable release.
Connection info
| Field | Value |
|---|---|
| Address | silico.ca (or ts.silico.ca) |
| Voice port | 9987/udp (default — omit) |
| Query port | 10011/tcp (ServerQuery) |
| File transfer | 30033/tcp |
| Version | 3.13.7 (Linux amd64) |
Client setup
- Download the TeamSpeak 5 client from https://teamspeak.com/en/downloads/ (Windows / macOS / Linux / iOS / Android). The TS3 client still works too.
- Launch the client and create a free myTeamSpeak identity (or skip and use a local identity).
Connections→Connect, then enter:- Server Nickname or Address:
silico.ca - Nickname: whatever you like
- Server Nickname or Address:
- On first connect you'll be prompted for a privilege key — paste the admin token (see below) to claim Server Admin rights. Only do this on the very first connection; afterwards you're promoted automatically based on identity.
Admin privilege key (one-time use)
The server generated this on first startup. Anyone who redeems it becomes Server Admin, so use it once and then delete this section, or revoke it from the server's token list:
token=VxpG+bVvZHX5bV8UcBJNRW4ADRnGmALLaxBnHhGx
If it's already been used, generate a new one via ServerQuery
(privilegekeyadd with tokentype=0 tokenid1=6 tokenid2=0) or by running
ts3server with a fresh database.
Server install
Installed under /opt/teamspeak owned by the teamspeak system user. See
install.sh for the exact steps used. Logs live at
/opt/teamspeak/logs/, the SQLite DB at /opt/teamspeak/ts3server.sqlitedb.
The systemd unit is in teamspeak.service:
sudo systemctl {status,restart,stop} teamspeak
sudo journalctl -u teamspeak -f
Firewall
The VPS has no host firewall active (nftables and firewalld are both
inactive on this Fedora 43 Cloud image), so OVH's upstream network is the only
filter. The three TS3 ports are reachable from the public internet as-is. If a
host firewall is enabled later, open:
9987/udp— voice10011/tcp— ServerQuery (optional, consider binding to localhost only)30033/tcp— file transfer (avatars, channel icons, uploads)
Notes to self
A few things I noticed while putting this together and would want to remember next time:
- bzip2 wasn't installed on the minimal Fedora Cloud image. The TS3 tarball
is
.tar.bz2, sotar -xjffailed untildnf install bzip2ran. Worth baking into a base provisioning script. - License acceptance has two mechanisms: touching
.ts3server_license_acceptedin the install dir and passinglicense_accepted=1on the command line. The systemd unit passes the flag, which is the documented-as-official path; the touch file is belt-and-braces. - The admin token is only printed once, into stdout of the first run. It
gets captured in
journalctl -u teamspeakbut if the journal is wiped before it's used, you have to generate a replacement via ServerQuery or start from a fresh DB. I grabbed it from the journal rather than parsing log files because the log files are named with a timestamp and that's brittle to script. - Ports 10080 and 10022 also open — those are TS3's built-in HTTP
ServerQuery and SSH ServerQuery respectively. They're on by default in 3.13.7.
I left them running but they're candidates for binding to 127.0.0.1 in
ts3server.iniif we don't need remote admin. - TeamSpeak 5 vs 3 confusion: TeamSpeak 5 is a client-only rewrite; the server product is still TS3 and there's no "TeamSpeak 5 Server" to install. Worth flagging because "latest version" is ambiguous from a user's POV.
- No DNS record yet for
ts.silico.ca.silico.caitself resolves to the VPS so it works, but a dedicated A record would be tidier and lets us move the service later without telling everyone a new address.