TeamSpeak: Complete Server Setup Guide
Comprehensive guide for installing and configuring TeamSpeak 3 servers on Linux, Windows, and Docker. Includes hosting platform comparisons and best practices for production deployments.
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 1 Core @ 1.5 GHz | 2 Cores @ 2.5 GHz+ |
| RAM | 512 MB | 2 GB+ |
| Storage | 1 GB | 10 GB SSD |
| Bandwidth | 1 Mbps | 10 Mbps+ (100 users) |
Port Requirements
- 9987 UDP: Voice communication (default)
- 10011 TCP: ServerQuery (admin interface)
- 30033 TCP: File transfers
- 41144 TCP: TSDNS (optional)
Linux Installation (Ubuntu/Debian)
Step 1: Create TeamSpeak User
# Create dedicated user for security
sudo adduser --disabled-login teamspeak
# Switch to teamspeak user
sudo su - teamspeak
Step 2: Download TeamSpeak Server
# Download latest version
cd /home/teamspeak
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Extract archive
tar xvf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Navigate to directory
cd teamspeak3-server_linux_amd64
Step 3: Accept License and Start Server
# Accept license
touch .ts3server_license_accepted
# Start server
./ts3server_startscript.sh start
# Server will display admin token - SAVE THIS!
Important: Save the ServerAdmin privilege key displayed on first start. You'll need this to claim admin rights.
Step 4: Configure Firewall
# UFW (Ubuntu/Debian)
sudo ufw allow 9987/udp
sudo ufw allow 10011/tcp
sudo ufw allow 30033/tcp
sudo ufw enable
# iptables alternative
sudo iptables -A INPUT -p udp --dport 9987 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 10011 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 30033 -j ACCEPT
sudo iptables-save
Step 5: Create Systemd Service
# Create service file
sudo nano /etc/systemd/system/teamspeak.service
# Add the following content:
[Unit]
Description=TeamSpeak 3 Server
After=network.target
[Service]
Type=forking
User=teamspeak
Group=teamspeak
WorkingDirectory=/home/teamspeak/teamspeak3-server_linux_amd64
ExecStart=/home/teamspeak/teamspeak3-server_linux_amd64/ts3server_startscript.sh start
ExecStop=/home/teamspeak/teamspeak3-server_linux_amd64/ts3server_startscript.sh stop
Restart=always
RestartSec=15
[Install]
WantedBy=multi-user.target
# Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable teamspeak
sudo systemctl start teamspeak
Windows Installation
Step-by-Step Windows Setup
- Download: Get TeamSpeak 3 Server from official website
- Extract: Unzip to C:\TeamSpeak3-Server\
- Accept License: Create empty file "ts3server_license_accepted.txt"
- Run: Execute ts3server_win64.exe
- Save Token: Copy the ServerAdmin privilege key
- Firewall: Allow ports 9987 UDP, 10011 TCP, 30033 TCP
Windows Service Installation
# Run as Administrator in PowerShell
cd C:\TeamSpeak3-Server
# Install service
.\ts3server_win64.exe -install
# Start service
Start-Service TeamSpeak3
# Set to auto-start
Set-Service TeamSpeak3 -StartupType Automatic
Docker Installation
Docker Compose Setup
# Create docker-compose.yml
version: '3.8'
services:
teamspeak:
image: teamspeak:latest
container_name: teamspeak3
restart: unless-stopped
ports:
- "9987:9987/udp"
- "10011:10011/tcp"
- "30033:30033/tcp"
environment:
- TS3SERVER_LICENSE=accept
- TS3SERVER_QUERY_PROTOCOLS=raw
volumes:
- ./data:/var/ts3server/
- ./logs:/var/ts3server/logs/
# Start container
docker-compose up -d
# View admin token
docker logs teamspeak3
Docker CLI Installation
# Pull image
docker pull teamspeak:latest
# Run container
docker run -d \
--name=teamspeak3 \
--restart=unless-stopped \
-p 9987:9987/udp \
-p 10011:10011/tcp \
-p 30033:30033/tcp \
-e TS3SERVER_LICENSE=accept \
-v $(pwd)/data:/var/ts3server/ \
teamspeak:latest
# Get admin token
docker logs teamspeak3 | grep token
Initial Configuration
Claim Admin Rights
- Connect: Open TeamSpeak client
- Add Server: Enter your server IP
- Use Token: Permissions > Use Privilege Key
- Paste Token: Enter the ServerAdmin token
- Confirm: You now have full admin rights
Basic Server Settings
| Setting | Recommended Value | Purpose |
|---|---|---|
| Server Name | Your Community Name | Branding |
| Max Clients | 32-512 | Capacity planning |
| Welcome Message | Custom greeting | User experience |
| Host Message | Server rules/info | Communication |
| Reserved Slots | 2-5 | Admin access |
Hosting Platform Comparison
Self-Hosted vs Managed Hosting
🏠 Self-Hosted
Pros: Full control, no recurring costs, custom configs
Cons: Maintenance, security, uptime responsibility
Best For: Technical users, large communities
☁️ Managed Hosting
Pros: Easy setup, support, guaranteed uptime
Cons: Monthly cost, limited customization
Best For: Beginners, small-medium communities
Recommended Hosting Providers
| Provider | Starting Price | Slots | Features |
|---|---|---|---|
| Supercraft.host | $3/month | 10-Unlimited | DDoS protection, instant setup |
| DigitalOcean | $6/month | Self-managed | VPS, full control |
| Linode | $5/month | Self-managed | VPS, global locations |
Performance Optimization
Server Configuration Tweaks
# Edit ts3server.ini
[Server]
# Increase connection limits
virtualserver_maxclients=512
virtualserver_reserved_slots=5
# Optimize voice quality
default_voice_port=9987
voice_ip=0.0.0.0
# Query settings
query_port=10011
query_ip=127.0.0.1 # Restrict to localhost
# File transfer
filetransfer_port=30033
filetransfer_ip=0.0.0.0
filetransfer_bandwidth_sent=6553600
filetransfer_bandwidth_received=6553600
Linux Performance Tuning
# Increase file descriptors
sudo nano /etc/security/limits.conf
# Add:
teamspeak soft nofile 65536
teamspeak hard nofile 65536
# Network optimization
sudo nano /etc/sysctl.conf
# Add:
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
# Apply changes
sudo sysctl -p
Backup and Recovery
Automated Backup Script
#!/bin/bash
# teamspeak_backup.sh
BACKUP_DIR="/backups/teamspeak"
TS_DIR="/home/teamspeak/teamspeak3-server_linux_amd64"
DATE=$(date +%Y%m%d_%H%M%S)
# Create backup directory
mkdir -p "$BACKUP_DIR"
# Stop server
systemctl stop teamspeak
# Backup files
tar -czf "$BACKUP_DIR/ts3_backup_$DATE.tar.gz" \
"$TS_DIR/ts3server.sqlitedb" \
"$TS_DIR/files/" \
"$TS_DIR/ts3server.ini"
# Start server
systemctl start teamspeak
# Keep only last 7 backups
find "$BACKUP_DIR" -name "ts3_backup_*.tar.gz" -mtime +7 -delete
echo "Backup completed: ts3_backup_$DATE.tar.gz"
Restore from Backup
# Stop server
systemctl stop teamspeak
# Extract backup
cd /home/teamspeak/teamspeak3-server_linux_amd64
tar -xzf /backups/teamspeak/ts3_backup_YYYYMMDD_HHMMSS.tar.gz
# Set permissions
chown -R teamspeak:teamspeak /home/teamspeak/teamspeak3-server_linux_amd64
# Start server
systemctl start teamspeak
Troubleshooting Common Issues
| Issue | Cause | Solution |
|---|---|---|
| Server won't start | License not accepted | Create .ts3server_license_accepted file |
| Can't connect | Firewall blocking ports | Open ports 9987 UDP, 10011 TCP, 30033 TCP |
| Poor voice quality | Bandwidth limitations | Increase server bandwidth allocation |
| Database errors | Corrupted SQLite database | Restore from backup or rebuild |
Get your TeamSpeak server running in minutes. Host your TeamSpeak server with Supercraft for instant setup and DDoS protection.