TeamSpeak is a long-standing voice chat platform, popular with gaming clans, esports teams and communities that value low latency, crisp audio and fine-grained permissions. Hosting your own TeamSpeak 3 server on a VPS gives you full control over channels, permissions and who can join. The free licence covers up to 32 slots (one virtual server).

Open-source alternative: Mumble.

Requirements

  • A small VPS is plenty: 1 vCPU and 512 MB–1 GB RAM for dozens of users. Voice is light: roughly 30–60 kbit/s per speaking user.
  • Low latency to your players matters most. Choose a location near them. See choosing a VPS location and game server VPS.

Option 1: native install

Create a dedicated user, and download the server (check teamspeak.com for the current version):

sudo adduser --system --group --home /opt/teamspeak teamspeak
cd /opt/teamspeak
sudo -u teamspeak wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
sudo -u teamspeak tar xjf teamspeak3-server_linux_amd64-*.tar.bz2 --strip-components=1
sudo -u teamspeak touch .ts3server_license_accepted     # accept the licence

systemd unit:

# /etc/systemd/system/teamspeak.service
[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
User=teamspeak
Group=teamspeak
WorkingDirectory=/opt/teamspeak
ExecStart=/opt/teamspeak/ts3server_minimal_runscript.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now teamspeak
sudo journalctl -u teamspeak | grep -iE 'token|loginname|password'

On the very first start, the log shows the ServerQuery admin password and a privilege key (token). Save both.

Option 2: Docker

services:
  teamspeak:
    image: teamspeak:latest
    restart: unless-stopped
    ports:
      - "9987:9987/udp"
      - "30033:30033"
      # - "10011:10011"     # ServerQuery: only if needed, and restricted
    environment:
      TS3SERVER_LICENSE: accept
    volumes:
      - ./data:/var/ts3server

docker compose logs shows the privilege key on the first start.

Firewall

Port Purpose
9987/udp Voice (default virtual server)
30033/tcp File transfers
10011/tcp ServerQuery (raw), admin only
10022/tcp ServerQuery over SSH, admin only
sudo ufw allow 9987/udp
sudo ufw allow 30033/tcp
sudo ufw allow from 203.0.113.50 to any port 10022 proto tcp    # ServerQuery only from your IP

Don’t expose ServerQuery to the internet. It’s a full admin interface. See UFW.

Connect and claim admin

  1. Install the TeamSpeak client, and connect to your server’s IP (or a domain with an A record).
  2. When asked, paste the privilege key. Your identity becomes Server Admin.
  3. Create channels, set channel passwords and permissions, server groups, and a welcome message.

Use a domain name for convenience. A DNS SRV record (_ts3._udp.example.com) lets users connect to example.com without a port. See DNS records explained.

Security

  • Keep the server updated. Old TeamSpeak versions have had vulnerabilities, and clients warn about outdated servers.
  • Set a server password for private communities, or use permission groups.
  • Configure anti-flood settings, and ban lists, for public servers.
  • Back up your identity (client side) securely. It holds your admin rights.

Backups

All data lives in the server directory, mainly ts3server.sqlitedb (channels, permissions, users) and files/:

sudo systemctl stop teamspeak
sudo tar -czf /backups/teamspeak-$(date +%F).tar.gz -C /opt teamspeak
sudo systemctl start teamspeak

See backup strategy.

Updates

Stop the server, back up, extract the new release over the old one (keeping the database and licence files), and start it again. Check the release notes for database migrations. With Docker, docker compose pull && docker compose up -d.

Quick reference

Task Command / setting
Accept licence .ts3server_license_accepted / TS3SERVER_LICENSE=accept
Find privilege key journalctl -u teamspeak | grep token
Voice port 9987/udp
Files port 30033/tcp
Database ts3server.sqlitedb

Related: game servers on a VPS and Linux server hardening.

  • Game Server
  • Voice Chat
  • Linux