Skip to main content

Overview

Keeping your TeamSpeak 6 Server up to date ensures you have the latest features, security patches, and bug fixes. This guide covers update procedures for both Docker and binary installations.
TeamSpeak 6 is currently in beta. Update procedures may change as the product evolves toward stable release.

Before You Update

1

Check release notes

Review the TeamSpeak 6 Server releases for:
  • New features and improvements
  • Breaking changes
  • Known issues
  • Migration notes
2

Create a backup

Always backup before updating. See Backup & Restore for detailed instructions.
# Quick backup command
docker run --rm -v teamspeak-data:/data -v $(pwd):/backup alpine \
  tar czf /backup/teamspeak-backup-pre-update-$(date +%Y%m%d).tar.gz -C /data .
3

Review configuration changes

Check if the new version requires configuration updates:
  • New parameters in CONFIG.md
  • Deprecated settings
  • Database schema changes
4

Plan maintenance window

Schedule the update during low-usage periods:
  • Notify users in advance
  • Estimated downtime: 5-15 minutes
  • Have rollback plan ready
Test updates in a non-production environment first if possible. Never update directly in production without a backup.

Docker Updates

Update Using Docker Compose

1

Pull the latest image

# Pull latest version
docker compose pull teamspeak

# Or pull specific version
docker pull teamspeaksystems/teamspeak6-server:1.0.0
2

Stop and remove the container

# Stop and remove container (data is preserved in volume)
docker compose down
Using docker compose down removes the container but keeps volumes intact. Your data is safe.
3

Start with new image

# Start with updated image
docker compose up -d
4

Verify the update

# Check server logs
docker logs -f teamspeak-server

# Verify version
docker exec teamspeak-server ./tsserver --version

# Check container status
docker ps

Update Using Docker Run

1

Stop and remove the container

docker stop teamspeak-server
docker rm teamspeak-server
2

Pull the latest image

docker pull teamspeaksystems/teamspeak6-server:latest
3

Start with updated image

docker run -d \
  --name teamspeak-server \
  -p 9987:9987/udp \
  -p 30033:30033 \
  -e TSSERVER_LICENSE_ACCEPTED=accept \
  -v teamspeak-data:/var/tsserver/ \
  teamspeaksystems/teamspeak6-server:latest
4

Verify the update

docker logs -f teamspeak-server

Automated Docker Updates

Use Watchtower to automatically update containers:
docker-compose.yaml
services:
  teamspeak:
    image: teamspeaksystems/teamspeak6-server:latest
    container_name: teamspeak-server
    restart: unless-stopped
    # ... other configuration ...
  
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_POLL_INTERVAL=86400  # Check daily
      - WATCHTOWER_INCLUDE_RESTARTING=true
    command: teamspeak-server
Automatic updates can cause unexpected downtime. Use with caution in production environments.

Binary Installation Updates

Linux Update Procedure

1

Download the latest version

# Download from official source
cd /tmp
wget https://files.teamspeak-services.com/releases/server/6.x.x/teamspeak6-server_linux_amd64-6.x.x.tar.gz

# Verify checksum (if provided)
sha256sum teamspeak6-server_linux_amd64-6.x.x.tar.gz
2

Stop the server

# If using systemd
sudo systemctl stop teamspeak

# Or if running directly
pkill tsserver

# Verify server stopped
ps aux | grep tsserver
3

Backup current installation

# Create backup
cd /opt
tar czf teamspeak-backup-pre-update-$(date +%Y%m%d).tar.gz teamspeak/

# Or rename current directory
mv teamspeak teamspeak-old-$(date +%Y%m%d)
4

Extract new version

# Extract to new directory
cd /opt
tar xzf /tmp/teamspeak6-server_linux_amd64-6.x.x.tar.gz
mv teamspeak6-server_linux_amd64 teamspeak-new
5

Migrate data and configuration

# Copy data files from old installation
cp teamspeak-old/*.sqlite teamspeak-new/
cp teamspeak-old/licensekey.dat teamspeak-new/
cp teamspeak-old/tsserver.yaml teamspeak-new/

# Copy file storage
cp -r teamspeak-old/files teamspeak-new/

# Copy SSH keys (if using SSH query)
cp teamspeak-old/ssh_host_rsa_key* teamspeak-new/

# Set permissions
chown -R tsserver:tsserver teamspeak-new/
chmod +x teamspeak-new/tsserver

# Replace old with new
rm -rf teamspeak
mv teamspeak-new teamspeak
6

Review configuration

# Check for new configuration options
./teamspeak/tsserver --help | less

# Compare with CONFIG.md
# Update tsserver.yaml if needed
7

Start the server

# If using systemd
sudo systemctl start teamspeak
sudo systemctl status teamspeak

# Or run directly
cd /opt/teamspeak
./tsserver --accept-license
8

Verify the update

# Check version
./tsserver --version

# Monitor logs
tail -f /opt/teamspeak/logs/ts6server_*.log

# Test connectivity
# Connect with TeamSpeak client
Keep the old installation directory for a few days in case you need to rollback. Remove it once you’re confident the update is stable.

Windows Update Procedure

1

Download the latest version

  1. Visit TeamSpeak Downloads
  2. Download the Windows server package
  3. Extract to a temporary location
2

Stop the server

# If running as service
Stop-Service TeamSpeak6

# Or stop the process
Stop-Process -Name tsserver

# Verify stopped
Get-Process tsserver -ErrorAction SilentlyContinue
3

Backup current installation

# Create backup
Compress-Archive -Path "C:\TeamSpeak" `
  -DestinationPath "C:\Backups\teamspeak-backup-$(Get-Date -Format 'yyyyMMdd').zip"

# Or rename current directory
Rename-Item "C:\TeamSpeak" "C:\TeamSpeak-old-$(Get-Date -Format 'yyyyMMdd')"
4

Install new version

# Copy new files
Copy-Item -Path "C:\Temp\teamspeak6-server\*" `
  -Destination "C:\TeamSpeak-new" -Recurse
5

Migrate data

# Copy database and configuration
Copy-Item "C:\TeamSpeak-old\*.sqlite" "C:\TeamSpeak-new\"
Copy-Item "C:\TeamSpeak-old\licensekey.dat" "C:\TeamSpeak-new\"
Copy-Item "C:\TeamSpeak-old\tsserver.yaml" "C:\TeamSpeak-new\"

# Copy file storage
Copy-Item "C:\TeamSpeak-old\files" "C:\TeamSpeak-new\files" -Recurse

# Rename directories
Rename-Item "C:\TeamSpeak-new" "C:\TeamSpeak"
6

Start the server

# If using service
Start-Service TeamSpeak6

# Or start directly
Start-Process -FilePath "C:\TeamSpeak\tsserver.exe"
7

Verify the update

# Check version
& "C:\TeamSpeak\tsserver.exe" --version

# Check service status
Get-Service TeamSpeak6

# View logs
Get-Content "C:\TeamSpeak\logs\ts6server_*.log" -Tail 50 -Wait

Database Updates

Automatic Schema Updates

TeamSpeak 6 Server automatically applies database schema updates on startup:
# Monitor logs for database updates
tail -f logs/ts6server_*.log | grep -i "database\|migration\|schema"
Database migrations run automatically. Large databases may take several minutes to update during the first startup after an update.

Manual Database Backup Before Update

For critical installations, backup the database separately:
sqlite3 /var/tsserver/ts6server.sqlite \
  ".backup /backups/ts6server-pre-update-$(date +%Y%m%d).sqlite"

Rollback Procedures

If an update fails or causes issues:

Docker Rollback

1

Stop the updated container

docker compose down
2

Restore previous image

docker-compose.yaml
services:
  teamspeak:
    image: teamspeaksystems/teamspeak6-server:1.0.0  # Previous version
    # ... rest of configuration ...
3

Restore backup if needed

# If database was corrupted
docker run --rm -v teamspeak-data:/data -v $(pwd):/backup alpine \
  sh -c "rm -rf /data/* && tar xzf /backup/teamspeak-backup-pre-update-YYYYMMDD.tar.gz -C /data"
4

Start with previous version

docker compose up -d

Binary Rollback

1

Stop the server

sudo systemctl stop teamspeak
2

Restore previous version

# Remove new version
rm -rf /opt/teamspeak

# Restore old version
mv /opt/teamspeak-old-YYYYMMDD /opt/teamspeak

# Or extract from backup
tar xzf teamspeak-backup-pre-update-YYYYMMDD.tar.gz -C /opt/
3

Restore database if needed

# SQLite
cp /backups/ts6server-pre-update-YYYYMMDD.sqlite \
  /opt/teamspeak/ts6server.sqlite

# MariaDB
mysql -u root -p teamspeak < teamspeak-db-pre-update-YYYYMMDD.sql
4

Start the server

sudo systemctl start teamspeak
Rollbacks may fail if the new version made irreversible database changes. Always test updates in a non-production environment first.

Beta License Updates

During the beta period, the 32-slot license is renewed every two months. No manual action is required.
The server will automatically fetch the updated license:
# Check license status in logs
grep -i "license" logs/ts6server_*.log

# Verify license file
ls -lh licensekey.dat
If license renewal fails:
  1. Check network connectivity
  2. Verify firewall allows outbound connections
  3. Restart the server
  4. Contact TeamSpeak support if issues persist

Version Pinning

For production stability, pin specific versions:

Docker Version Pinning

docker-compose.yaml
services:
  teamspeak:
    image: teamspeaksystems/teamspeak6-server:1.0.0  # Specific version
    # Do not use :latest in production

Update Policy

Establish an update policy:
  • Security updates: Apply within 48 hours
  • Feature updates: Test for 1-2 weeks before production
  • Major versions: Test for 4+ weeks before production
Subscribe to the TeamSpeak 6 Server releases to receive notifications about new versions.

Post-Update Checklist

After updating, verify:
  • Server starts without errors
  • All virtual servers are online
  • Clients can connect
  • File transfers work
  • ServerQuery interfaces respond
  • Permissions are intact
  • Channel structure is preserved
  • Custom icons and files are accessible
  • Performance is normal (CPU, memory, bandwidth)
  • Logs show no warnings or errors
# Quick verification script
#!/bin/bash

echo "Server status:"
docker ps | grep teamspeak-server || systemctl status teamspeak

echo "\nRecent logs:"
docker logs --tail 50 teamspeak-server 2>&1 | grep -i "error\|warning" || \
  tail -50 /opt/teamspeak/logs/ts6server_*.log | grep -i "error\|warning"

echo "\nPort connectivity:"
nc -zuv localhost 9987
nc -zv localhost 30033

echo "\nUpdate verification complete."

Troubleshooting Updates

Common Update Issues

IssueCauseSolution
Server won’t startConfiguration incompatibilityReview CONFIG.md for changes, update tsserver.yaml
Database errorsFailed migrationRestore from backup, check logs for specific error
Permission deniedWrong file ownershipFix with chown -R tsserver:tsserver /opt/teamspeak
Port binding failedOld process still runningKill process: pkill -9 tsserver
Clients can’t connectVersion mismatchEnsure clients are updated to compatible version

Getting Help

If you encounter issues:
  1. Check the TeamSpeak Community Forum
  2. Review GitHub Issues
  3. Collect logs and system information:
    # Create support bundle
    tar czf teamspeak-support-$(date +%Y%m%d).tar.gz \
      logs/ \
      tsserver.yaml \
      docker-compose.yaml
    
  4. Report issues on GitHub with:
    • Server version (before and after update)
    • Operating system and version
    • Installation method (Docker/binary)
    • Error messages from logs
    • Steps to reproduce
For urgent issues during the beta period, contact TeamSpeak support through official channels.

Build docs developers (and LLMs) love