This guide provides a comprehensive walkthrough for installing and configuring a TeamSpeak 3 server on a Linux-based Virtual Private Server (VPS) or dedicated server that is managed using the Plesk control panel. By following these steps, administrators can establish a robust voice communication platform, leveraging Plesk’s interface for certain management tasks while directly interacting with the Linux system for core server setup.
I. Pre-Installation Checklist
Before commencing the TeamSpeak 3 server installation, it is crucial to ensure that the server environment and necessary prerequisites are in place. Addressing these items beforehand will facilitate a smoother setup process and help prevent common installation roadblocks.
- Server Requirements:
- Linux VPS with Plesk: The primary requirement is a Linux VPS or dedicated server with a compatible version of Plesk, such as Plesk Obsidian, installed. TeamSpeak server software is predominantly developed for Linux environments, making Plesk for Linux a common and suitable management platform.
- Sufficient Server Resources: While TeamSpeak 3 itself is relatively lightweight for small to medium-sized communities, the underlying operating system and Plesk panel consume resources. It is important to ensure the server has adequate CPU, RAM, and disk space to accommodate TeamSpeak alongside existing services.
- Root or Sudo Access: Administrative privileges (root access or a user account with
sudo
capabilities) are necessary for various installation steps, including software installation and user creation. This access can be conveniently managed through Plesk’s SSH Terminal extension.
- Plesk Prerequisites:
- Plesk Administrator Credentials: Access to the Plesk control panel with administrator-level login credentials is required to navigate its features and perform administrative actions.
- SSH Terminal Extension: The “SSH Terminal” extension must be installed and enabled within Plesk. This extension allows direct command-line access to the server from within the Plesk interface, which is essential for several installation commands. If not already installed, it can typically be found in the Plesk Extensions catalog. The availability of this extension simplifies the process for administrators who prefer to work within the Plesk UI, reducing the need for external SSH clients for many tasks.
- Plesk Interface Familiarity: A basic understanding of navigating the Plesk interface is beneficial. Key areas that will be used include “Websites & Domains” (for accessing File Manager initially), “Tools & Settings” (for SSH Terminal and Firewall), “File Manager,” and the “Firewall” section.
- Obtaining Server Information:
- Public IP Address: The server’s public IP address must be known. This IP address is how TeamSpeak clients will connect to the server once it is operational. The IP address can usually be found within the Plesk panel dashboard or through the hosting provider’s client area.
Meeting these prerequisites ensures that the server is prepared for the installation and that the administrator has the necessary tools and access levels to complete the setup successfully. For instance, without the SSH Terminal extension, executing command-line operations through Plesk would not be possible, complicating the installation.
II. Acquiring the TeamSpeak 3 Server Software
Obtaining the correct and official TeamSpeak 3 server software is a critical first step. Using official sources ensures access to the latest stable version and mitigates the risk of downloading compromised or outdated software.
- Navigate to Official Downloads: Open a web browser and go to the official TeamSpeak downloads page: https://teamspeak.com/downloads. It is paramount to use this official source to avoid unofficial distributions that may contain malware or be outdated.
- Locate the “Server” Section: On the downloads page, find the section dedicated to TeamSpeak Server software.
- Identify Linux Server Version: For most modern Linux servers, the “Server 64-bit” version is appropriate. An example filename might be
teamspeak3-server_linux_amd64-3.13.7.tar.bz2
, as indicated by official sources. Note the exact version number, as this will be referenced in subsequent commands. - Copy Download Link: Right-click on the download button or link for the 64-bit Linux server and copy the link address. This link will be used to import the software directly into Plesk. The official page also provides SHA256 checksums, which are useful for verifying file integrity if the software were downloaded through other means.
Downloading the correct architecture (e.g., 64-bit for a 64-bit operating system) is essential; an incorrect architecture will prevent the software from running. Similarly, using an outdated version from an unofficial source could expose the server to known security vulnerabilities. The version 3.13.7 is noted as a recent stable release on the official site.
III. Managing TeamSpeak Files with Plesk File Manager
Plesk’s File Manager provides a user-friendly graphical interface for handling files and directories on the server. This tool can be used to upload (or import) and extract the TeamSpeak server archive, which can be more approachable for administrators less familiar with Linux command-line file operations.
- Choosing an Installation Directory: Standard practice for third-party applications on Linux suggests directories like
/opt
or/usr/local
. For a self-contained application such as TeamSpeak, creating a dedicated directory like/opt/teamspeak3-server
is a common and recommended approach. This keeps the application files organized and separate from system files. An alternative, often seen in guides, is to install the server under a dedicated system user’s home directory, such as/home/teamspeak_user/teamspeak3-server
. This guide will proceed with/opt/teamspeak3-server
for a system-wide context.- To access the File Manager and navigate to the chosen directory, log into Plesk. Go to Websites & Domains, select any listed domain (this is merely an entry point to the File Manager for server-level access), and then click on Files.
- From the initial domain-specific directory, navigate up the directory tree to the root (
/
) directory. Then, navigate into theopt
directory. - If the
teamspeak3-server
directory does not already exist within/opt
, create it using the File Manager’s “Create Directory” or “+” > “Create Directory” option.
- Uploading/Importing the Server Archive:
- Navigate into the newly created
/opt/teamspeak3-server
directory within the Plesk File Manager. - Click the “+” button (or a similar “Upload” or “Add” button) and select the “Import file via URL” option. This feature allows Plesk to download the file directly from the internet to the server.
- In the provided field, paste the download link for the TeamSpeak 3 server archive that was copied from the official TeamSpeak website in the previous section. Click “Import.”
- Plesk File Manager supports a variety of archive formats, including
.tar.bz2
, which is the format used for TeamSpeak server distributions. Specifically, TAR, TGZ (tar.gz), and TAR.GZ are listed as supported, and.bz2
is a common compression method used in conjunction withtar
archives.
- Navigate into the newly created
- Extracting the Server Archive:
- Once the import process is complete, the
.tar.bz2
archive file (e.g.,teamspeak3-server_linux_amd64-3.13.7.tar.bz2
) will appear in the/opt/teamspeak3-server
directory. - Select the archive file by clicking on its row.
- Click the “Extract Files” button or option in the File Manager toolbar.
- Confirm the extraction when prompted. The files will be unpacked into the current directory (
/opt/teamspeak3-server
). - Typically, the extraction process creates a subdirectory named after the archive (e.g.,
teamspeak3-server_linux_amd64
). The contents of this subdirectory need to be moved up one level directly into/opt/teamspeak3-server
. This can be done using the File Manager’s move functionality: select all files and folders withinteamspeak3-server_linux_amd64
, move them to/opt/teamspeak3-server/
, and then delete the now-emptyteamspeak3-server_linux_amd64
folder and the original.tar.bz2
archive to keep the directory clean. These cleanup steps can also be performed later via the SSH terminal if preferred.
- Once the import process is complete, the
Utilizing Plesk File Manager for these operations significantly lowers the entry barrier for administrators who may not be proficient with Linux commands such as wget
for downloading, tar
for extraction, and mv
or rm
for file manipulation. This demonstrates Plesk’s utility in abstracting some of the complexities of command-line server management, although a foundational understanding of the Linux file system structure remains beneficial.
IV. Core Installation via Plesk SSH Terminal
While Plesk File Manager handles file placement, several core installation steps require command-line execution. Plesk’s SSH Terminal provides a convenient way to perform these tasks directly from the web interface. This section covers creating a dedicated user, setting permissions, accepting the license, and the critical first server run to obtain the administrator privilege key.
- Accessing the Plesk SSH Terminal:
- Log in to Plesk as an administrator.
- Navigate to Tools & Settings from the left-hand navigation pane.
- Under the “Tools & Resources” section, click on SSH Terminal. This will open an SSH session as the
root
user, which is necessary for initial setup tasks like user creation. The terminal typically uses the/bin/bash
shell.
- A. Creating a Dedicated TeamSpeak User (Security Best Practice): Running network services under a dedicated, non-root user account is a fundamental security measure. This limits the potential damage if the service is compromised. Execute the following command in the Plesk SSH Terminal to create a system user named
teamspeak_user
: Bashsudo useradd -r -d /opt/teamspeak3-server -s /bin/false teamspeak_user
sudo
: Executes the command with superuser privileges.useradd
: The standard Linux command for adding a new user.-r
: This flag creates a system user. System users are typically used for running services and often do not have password aging policies or a home directory created by default (unless the-m
flag is also used).-d /opt/teamspeak3-server
: This sets the home directory for theteamspeak_user
to the TeamSpeak installation directory. This is a convenient setup, aligning the user’s designated home with the application’s location.-s /bin/false
: This sets the user’s login shell to/bin/false
. This is a security enhancement that prevents direct interactive logins for this user account; the account can own processes but cannot be logged into via SSH or console.teamspeak_user
: This is the chosen username for the service account. Other common names includeteamspeak
.
- B. Setting File Ownership and Permissions: The newly created
teamspeak_user
must own the TeamSpeak server files and directories to manage them correctly.- If not already there, navigate to the parent directory of the TeamSpeak installation: Bash
cd /opt
- Change the ownership of the
teamspeak3-server
directory and all its contents toteamspeak_user
: Bashsudo chown -R teamspeak_user:teamspeak_user teamspeak3-server/
chown -R
: The command to change file owner and group, with-R
for recursive operation through all subdirectories and files.teamspeak_user:teamspeak_user
: Sets both the user owner and group owner toteamspeak_user
.
- Navigate into the TeamSpeak server directory: Bash
cd /opt/teamspeak3-server/
- If the files were extracted into a subdirectory (e.g.,
teamspeak3-server_linux_amd64
) during the File Manager step and not moved, perform these cleanup actions now: Bashsudo mv teamspeak3-server_linux_amd64/*. sudo rmdir teamspeak3-server_linux_amd64 sudo rm teamspeak3-server_linux_amd64-*.tar.bz2
Ensure the wildcard in therm
command matches the downloaded archive’s filename.
- If not already there, navigate to the parent directory of the TeamSpeak installation: Bash
- C. Accepting the TeamSpeak License Agreement: TeamSpeak Server requires explicit acceptance of its license terms before it will run. This is achieved by creating a specific empty file in the server’s root directory. Execute the following command to create the license acceptance file. It’s good practice to create this file as the
teamspeak_user
or ensure its ownership is correct if created as root. Bashsudo -u teamspeak_user touch.ts3server_license_accepted
sudo -u teamspeak_user
: Executes thetouch
command as theteamspeak_user
.touch.ts3server_license_accepted
: Creates an empty file named.ts3server_license_accepted
in the current directory (/opt/teamspeak3-server/
). This file must reside in the same directory as thets3server_startscript.sh
executable.
- D. Initial Server Launch & Privilege Key Retrieval (Critical Step): This is a pivotal step. The first time the TeamSpeak server starts, it generates essential credentials, including a unique ServerAdmin privilege key (token). This key is required to claim administrator rights on the server via the TeamSpeak client.
- Ensure you are in the TeamSpeak server directory (
/opt/teamspeak3-server/
). - Start the server using the
teamspeak_user
account: Bashsudo -u teamspeak_user./ts3server_startscript.sh start
This command executes the main server start script. - CRITICAL ACTION: Upon its first successful startup, the server will output several important pieces of information to the console. This output will include:
- A ServerAdmin privilege key (token) (e.g.,
token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
) - A ServerQuery Admin loginname (usually
serveradmin
) - A ServerQuery Admin password An example of this output structure is detailed in various setup guides.
token
is particularly vital as it’s a one-time key used to grant initial Server Admin privileges in the TeamSpeak client. Losing this key before use can make it difficult to administer the server. - A ServerAdmin privilege key (token) (e.g.,
- After securely copying the credentials and privilege key, stop the server for now. The server will be configured to run as a system service in a later step. Bash
sudo -u teamspeak_user./ts3server_startscript.sh stop
- Ensure you are in the TeamSpeak server directory (
Executing commands with sudo -u teamspeak_user
ensures that the TeamSpeak server processes run under the restricted permissions of the dedicated service account, adhering to the principle of least privilege and enhancing server security. Skipping user creation or running as root poses a significant security risk. Failure to accept the license will prevent the server from starting, and losing the privilege key will lock the administrator out from initial server management.
V. Configuring Plesk Firewall for TeamSpeak Access
For users to connect to the TeamSpeak server from the internet, the necessary network ports must be opened in the server’s firewall. Plesk provides a graphical interface for managing firewall rules, which simplifies this process compared to direct command-line firewall configuration.
- Identifying Required TeamSpeak Ports: The TeamSpeak 3 server relies on specific ports for its various functions :
- Port 9987 (UDP): This is the primary port for voice communication and is the port TeamSpeak clients connect to by default.
- Port 30033 (TCP): Used for file transfers between clients and the server.
- Port 10011 (TCP): The default port for ServerQuery connections, which are used by server administration tools, bots, and scripts to interact with the server. (Note: Port 41144/TCP for TSDNS is sometimes mentioned for advanced DNS resolution but is not essential for basic server functionality and is not consistently highlighted in primary setup guides ).
- Adding Custom Firewall Rules in Plesk:
- In the Plesk control panel, navigate to Tools & Settings.
- Under the “Security” group, click on Firewall.
- If the firewall component is not installed, Plesk may prompt to install it from the Extensions catalog. Ensure that “Firewall Rules Management” is enabled.
- Click on Modify Plesk Firewall Rules or a similar button like Add Custom Rule or Add Firewall Rule.
- New rules need to be created for each of the TeamSpeak ports. For each rule:
- Rule Name: Assign a descriptive name, for example:
- “TeamSpeak Voice (UDP)”
- “TeamSpeak FileTransfer (TCP)”
- “TeamSpeak ServerQuery (TCP)”
- Match Direction: Select “Incoming”.
- Action: Choose “Allow” to permit connections on the specified port.
- Ports:
- For the voice port: Enter “9987” and select “UDP” as the protocol.
- For the file transfer port: Enter “30033” and select “TCP” as the protocol.
- For the ServerQuery port: Enter “10011” and select “TCP” as the protocol.
- Sources (Remote addresses): For a public TeamSpeak server, select the option to “Allow connections from any IP address.” If access needs to be restricted to specific IP addresses or ranges, those can be specified here.
- Click “OK” or “Save” to create each rule.
- Rule Name: Assign a descriptive name, for example:
- After all necessary rules have been added, there is typically an “Apply Changes,” “Activate Rules,” or similar button that must be clicked to make the new firewall configuration live.
The following table summarizes the default ports essential for TeamSpeak 3 server operation:
TeamSpeak 3 Server Default Ports
Port | Protocol | Purpose | Direction |
---|---|---|---|
9987 | UDP | Voice, Client Connections | Inbound |
30033 | TCP | File Transfer | Inbound |
10011 | TCP | ServerQuery (Admin) | Inbound |
Firewall configuration is a common point where server setups encounter issues. If these ports are not correctly opened, clients will be unable to connect to the TeamSpeak server, often resulting in “No reply from server” or “Failed to connect” errors. While direct command-line tools like ufw
(mentioned in non-Plesk contexts ) or iptables
can manage firewalls, using the Plesk Firewall interface is the recommended method in a Plesk-managed environment. This ensures that Plesk remains aware of the firewall configuration and prevents potential conflicts that could arise from manual modifications outside of Plesk’s control.
VI. Ensuring Server Persistence with a Systemd Service
To ensure the TeamSpeak server runs reliably, starts automatically upon server boot, and can be managed like other system services (e.g., start, stop, restart, check status), it is essential to configure it as a systemd service. Simply starting the server script in an SSH session is not a robust solution, as the server would terminate if the session closes or the server reboots.
- Rationale for Using Systemd: Modern Linux distributions, including Debian 8 and later, CentOS/RHEL 7 and later, and Ubuntu 15.04 and later, utilize
systemd
as their init system and service manager. Systemd provides a standardized and powerful framework for managing daemons (background services). Key benefits include:- Automatic Startup: Services can be configured to start automatically when the system boots.
- Process Supervision: Systemd monitors running services and can automatically restart them if they crash or fail.
- Standardized Management Commands: Consistent commands (
systemctl start
,systemctl stop
,systemctl status
, etc.) are used to manage all systemd services. - Dependency Management: Services can be configured to start only after their dependencies (e.g., network connectivity) are met. This is far superior to older methods like
init.d
scripts or using tools likenohup
,screen
, ortmux
to keep a manually started process running in the background for server applications.
- Creating the
teamspeak.service
File: A systemd unit file, typically ending with.service
, defines how systemd should manage the application. This file will be created in the/etc/systemd/system/
directory. This can be done using a command-line text editor likenano
via the Plesk SSH Terminal, or potentially using Plesk File Manager’s text editing capabilities if permissions allow. Using the command line is generally more precise for system configuration files.- Open a new file named
teamspeak.service
for editing: Bashsudo nano /etc/systemd/system/teamspeak.service
This path is standard for custom systemd service files. - Paste the following content into the editor. This configuration is adapted from common examples and best practices for TeamSpeak : Ini, TOML
[Unit] Description=TeamSpeak 3 Server Wants=network-online.target After=network-online.target WorkingDirectory=/opt/teamspeak3-server/ User=teamspeak_user Group=teamspeak_user Type=forking ExecStart=/opt/teamspeak3-server/ts3server_startscript.sh start inifile=ts3server.ini ExecStop=/opt/teamspeak3-server/ts3server_startscript.sh stop PIDFile=/opt/teamspeak3-server/ts3server.pid RestartSec=15 Restart=always StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target
- Explanation of Key Directives:
[Unit]
Section:Description
: A human-readable description of the service.Wants=network-online.target
&After=network-online.target
: Specifies that the service should start after the network is fully operational.
- “ Section:
WorkingDirectory=/opt/teamspeak3-server/
: Sets the working directory for the executed scripts to the TeamSpeak installation path.User=teamspeak_user
&Group=teamspeak_user
: Specifies that the service should run under the dedicatedteamspeak_user
account created earlier.Type=forking
: This type is used when theExecStart
script launches a daemon process that forks and exits, while the actual service continues running in the background. TeamSpeak’sts3server_startscript.sh
behaves this way.ExecStart=/opt/teamspeak3-server/ts3server_startscript.sh start inifile=ts3server.ini
: The command to start the TeamSpeak server. Theinifile=ts3server.ini
argument tells the server to use a specific configuration file.ExecStop=/opt/teamspeak3-server/ts3server_startscript.sh stop
: The command to stop the TeamSpeak server.PIDFile=/opt/teamspeak3-server/ts3server.pid
: Specifies the path to the Process ID (PID) file that the TeamSpeak server creates. Systemd uses this to track the main process.Restart=always
&RestartSec=15
: Configures systemd to always attempt to restart the service if it crashes or stops unexpectedly, with a 15-second delay between restart attempts.StandardOutput=journal
&StandardError=journal
: Redirects the standard output and standard error streams of the service to the systemd journal, allowing logs to be viewed withjournalctl
.
[Install]
Section:WantedBy=multi-user.target
: This enables the service to be started automatically during the boot process when the system reaches the multi-user runlevel.
- Save the file and exit the text editor (in
nano
, this is typically Ctrl+X, then Y, then Enter).
- Open a new file named
- Enabling and Managing the Service: After creating the service file, systemd needs to be informed about it, and the service needs to be enabled and started.
- Reload Systemd Configuration: This command makes systemd aware of the new or changed service file: Bash
sudo systemctl daemon-reload
- Enable the Service: This command configures the service to start automatically on system boot: Bash
sudo systemctl enable teamspeak.service
- Start the Service: This command starts the TeamSpeak server immediately: Bash
sudo systemctl start teamspeak.service
- Check the Service Status: This command displays the current status of the service, including whether it is active (running) and any recent log entries: Bash
sudo systemctl status teamspeak.service
Look for output indicating “active (running)”.
- Reload Systemd Configuration: This command makes systemd aware of the new or changed service file: Bash
Proper service management through systemd is fundamental for the reliability of any server application. Without it, the TeamSpeak server would be prone to downtime. While Plesk itself manages many system services and its own components , a manually installed application like TeamSpeak requires this custom systemd unit for integration into the system’s service management framework. Plesk’s “Watchdog” component is generally for services Plesk is already aware of and not typically for custom user-installed applications unless specifically configured.
VII. Connecting to Your TeamSpeak Server
With the TeamSpeak 3 server installed, configured as a service, and the necessary firewall ports opened, the next step is to connect to it using the TeamSpeak 3 client. This initial connection is also when the previously saved ServerAdmin privilege key will be used.
- Download and Install TeamSpeak 3 Client: If not already installed, download the TeamSpeak 3 Client application for your local operating system (Windows, macOS, or Linux) from the official TeamSpeak downloads page: https://teamspeak.com/downloads. Install the client on your computer.
- Open the TeamSpeak 3 Client: Launch the installed application.
- Initiate Connection:
- In the client menu, click on Connections > Connect. Alternatively, use the keyboard shortcut Ctrl+S.
- A connection dialog box will appear. Fill in the following details:
- Server Nickname or Address: Enter the public IP address of your Plesk server (this was noted in the Pre-Installation Checklist).
- Port: The default TeamSpeak voice port is
9987
. Ensure this is entered if it’s not already pre-filled. - Nickname: Choose a display name that you wish to use on the server.
- Server Password: Leave this field blank for the initial connection, unless a server password was pre-configured in the
ts3server.ini
file (this advanced configuration is not covered in this basic setup guide, though it is a security option ).
- Connect to the Server: Click the Connect button.
- Use the Privilege Key (CRITICAL):
- Upon a successful first connection to a newly initialized TeamSpeak server, a dialog box will pop up prompting for a Privilege Key.
- This is where the
token
(e.g.,token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
) that was carefully saved during the “Initial Server Launch & Privilege Key Retrieval” step (Section IV-D) must be entered. - Paste the entire token value into the field.
- Click OK.
Successfully entering the correct privilege key will grant your client identity Server Admin privileges on your new TeamSpeak server. This key is a one-time use token for claiming initial administrative rights. If this key is lost before use, or if it has already been used (perhaps inadvertently or by another party), regaining administrative control can become significantly more complex, often requiring interaction with the server via ServerQuery. This step effectively “claims” the server and is the gateway to further server administration from within the client.
VIII. Essential Post-Installation Steps & Security Notes
Once the TeamSpeak 3 server is running and accessible, and administrative privileges have been claimed, some essential post-installation configurations and security considerations should be addressed.
- Basic Server Configuration (via TeamSpeak Client with Admin Rights): With Server Admin rights, various server settings can be customized directly from the TeamSpeak 3 client.
- Connect to your server with the client identity that has Server Admin privileges.
- In the channel tree view, right-click on the server name (usually at the very top).
- Select Edit Virtual Server from the context menu.
- A dialog box with multiple configuration tabs will appear. Common settings to adjust include:
- Server Name: Assign a custom, recognizable name for your server.
- Welcome Message: Create a message that is displayed to users when they connect to the server.
- Server Password (Optional but Recommended): For enhanced security, a global server password can be set. Users will then need to provide this password to connect.
- Other settings such as voice codecs, server banners, and host buttons can also be explored and configured here.
- Brief Security Best Practices (Recap & Expansion): Maintaining a secure server environment is an ongoing responsibility.
- Keep TeamSpeak Server Updated: Regularly visit the official TeamSpeak website to check for new server versions. Manually installed software like TeamSpeak is not updated by Plesk’s system update tools. The update process is detailed in the next section.
- Strong ServerQuery Admin Password: The ServerQuery
serveradmin
account password (generated during the server’s first start and saved in Section IV-D ) should be very strong and kept confidential. This account has powerful administrative capabilities. - Regular Backups: While Plesk’s backup manager handles system and Plesk-related data, it may not automatically include the manually installed TeamSpeak server. It is crucial to implement a strategy for backing up the TeamSpeak server directory (
/opt/teamspeak3-server/
), paying special attention to thets3server.sqlitedb
file (which contains all server configuration, channels, permissions, users, etc.) and thefiles/
directory (if user-uploaded files are utilized). Plesk’s backup manager might be configurable to include custom directories, or manual/scripted backups can be implemented. - Limit User Permissions within TeamSpeak: Utilize TeamSpeak’s extensive permission system to grant users and groups only the specific rights they require. Avoid assigning broad administrative privileges unnecessarily.
- Monitor Logs: Regularly review the TeamSpeak server logs located in
/opt/teamspeak3-server/logs/
and the systemd journal logs for the service (sudo journalctl -u teamspeak.service
) for any errors, warnings, or suspicious activity. - Firewall Integrity: Periodically verify that the Plesk firewall rules are correctly configured and that only the essential TeamSpeak ports are open to the public (reiteration of Section V).
- Overall System Security: General Linux server security best practices are paramount. This includes keeping the operating system and all installed packages updated via Plesk System Updates , using strong passwords or SSH keys for Plesk and server access, and following other security hardening guidelines. The security of the TeamSpeak server is intrinsically linked to the security of the underlying Plesk-managed server.
- Anti-DDoS Measures: For public-facing TeamSpeak servers that might become targets, Distributed Denial of Service (DDoS) protection can be critical. TeamSpeak servers can be vulnerable to UDP flood attacks. DDoS mitigation is an advanced topic, often provided by the hosting provider or through specialized third-party services.
Installation is merely the initial phase; diligent ongoing management, particularly concerning security and updates, is vital for maintaining a healthy and secure TeamSpeak server. The administrator assumes full responsibility for the maintenance and security of this manually installed application, which operates somewhat independently of Plesk’s direct management for third-party software.
IX. Updating Your Manually Installed TeamSpeak Server
Software updates are crucial for security, bug fixes, and new features. Since the TeamSpeak 3 server was installed manually, its updates are not handled by Plesk’s automated system update mechanisms or Plesk component updates. Therefore, a manual update procedure is required.
- Understanding Manual Updates: Plesk’s “System Updates” tool is designed to manage updates for operating system packages and some Plesk-related components. Plesk’s own “Updates” section handles updates for Plesk core software and official Plesk extensions. A manually installed application like the TeamSpeak server falls outside these automated systems, necessitating administrator intervention for updates.
- Update Procedure (General Steps): The following steps outline a general process for updating a manually installed TeamSpeak server. Always refer to any specific update instructions provided by TeamSpeak for the new version, if available.
- Backup Crucial Data: Before initiating any update, it is highly recommended to create a complete backup of your TeamSpeak server directory (
/opt/teamspeak3-server/
). At a minimum, back up the following critical files and directories:ts3server.sqlitedb
(this is the main database file containing all server settings, channels, users, permissions, etc.)ts3server.ini
(if you have made custom configurations in this file)- The
files/
directory (if your server allows file uploads and you want to preserve them) - The
.ts3server_license_accepted
file (though it can be easily recreated) - Any custom scripts or query_ip_whitelist.txt / query_ip_blacklist.txt files if used.
- Check for New Version: Regularly visit the official TeamSpeak downloads page (https://teamspeak.com/downloads) to see if a newer version of the Linux server software is available. Note the new version number and download link.
- Stop the TeamSpeak Service: Gracefully stop the currently running TeamSpeak server to prevent data corruption during the update: Bash
sudo systemctl stop teamspeak.service
- Download the New Version: Using Plesk File Manager’s “Import file via URL” feature or a command-line tool like
wget
in the Plesk SSH Terminal, download the new TeamSpeak server.tar.bz2
archive. It’s advisable to download it into a temporary directory, for example,/opt/teamspeak3-server/temp_update/
(create this directory if it doesn’t exist). - Extract the New Version: Navigate to the temporary directory and extract the contents of the newly downloaded archive: Bash
cd /opt/teamspeak3-server/temp_update/ tar xvf teamspeak3-server_linux_amd64-NEW_VERSION.tar.bz2
(Replaceteamspeak3-server_linux_amd64-NEW_VERSION.tar.bz2
with the actual filename of the downloaded archive). - Replace Old Server Files with New Ones: This is the most critical part of the update. The goal is to replace the old executable and core files with the new ones while preserving your data and configuration.
- Navigate to the directory containing the newly extracted files (e.g.,
/opt/teamspeak3-server/temp_update/teamspeak3-server_linux_amd64/
). - Carefully copy the new files and directories over to your main TeamSpeak installation directory (
/opt/teamspeak3-server/
). A common command for this (run from within the new extracted files directory) might be: Bashsudo cp -R * /opt/teamspeak3-server/
- Crucially, after copying, ensure that your preserved data files (like
ts3server.sqlitedb
,ts3server.ini
, and thefiles/
directory) from your backup are restored or were not overwritten if they exist in the new package. Often, the new server package will not contain these user-specific files, but it’s vital to be cautious. The primary goal is to update the server binaries and supporting libraries.
- Navigate to the directory containing the newly extracted files (e.g.,
- Verify and Set Permissions: After copying the new files, re-verify that the
teamspeak_user
still owns all files and directories within the TeamSpeak installation path and has the necessary permissions: Bashsudo chown -R teamspeak_user:teamspeak_user /opt/teamspeak3-server/ sudo chmod +x /opt/teamspeak3-server/ts3server_startscript.sh /opt/teamspeak3-server/ts3server_minimal_runscript.sh
(Thechmod +x
ensures the start scripts are executable, though they usually are by default). - Start the TeamSpeak Service: Start the updated server using systemd: Bash
sudo systemctl start teamspeak.service
- Check Status and Logs: Verify that the service has started correctly and check for any errors: Bash
sudo systemctl status teamspeak.service
Review the TeamSpeak server logs (/opt/teamspeak3-server/logs/
) and systemd journal (journalctl -u teamspeak.service
) for any update-related messages or issues. Connect with a client to ensure functionality. - Clean Up: Once confirmed that the update is successful, you can remove the temporary update directory (e.g.,
/opt/teamspeak3-server/temp_update/
).
- Backup Crucial Data: Before initiating any update, it is highly recommended to create a complete backup of your TeamSpeak server directory (
The manual update process for software not packaged or managed by Plesk is a significant responsibility for the server administrator. It is more involved than the automated updates Plesk provides for its own components and system packages. Failure to update can expose the server to security vulnerabilities, while incorrect update procedures (especially mishandling the database file) can lead to data loss. The now-unavailable “Tea(m)speak Interface” Plesk extension might have offered a more streamlined update path in the past, but current practice necessitates this manual approach.
X. Troubleshooting Common Setup Issues
Even with a detailed guide, issues can arise during the setup of a TeamSpeak server. This section covers some common problems and provides diagnostic steps or solutions.
- Cannot Connect to Server (“No reply from server” / “Failed to connect to server”): This is one of the most frequent issues.
- Firewall Configuration: The primary suspect is often the firewall. Double-check the Plesk firewall rules to ensure that ports 9987/UDP (voice), 30033/TCP (file transfer), and 10011/TCP (ServerQuery) are correctly opened for incoming connections from “Any IP address” (or your specified sources). Ensure the rules are enabled and applied.
- TeamSpeak Server Not Running: Verify that the TeamSpeak service is actually running on the server. Use the Plesk SSH Terminal to execute: Bash
sudo systemctl status teamspeak.service
If the service is not active (running), attempt to start it:sudo systemctl start teamspeak.service
. Then, check the logs for reasons why it might have failed to start (see “Service Fails to Start” below). - Incorrect IP Address or Port: Confirm that the TeamSpeak client is configured to connect to the correct public IP address of your Plesk server and is using port
9987
(unless intentionally changed). - ISP or Network Port Blocking: In rare cases, Internet Service Providers (ISPs), particularly for residential connections, or upstream network providers might block common server ports. This is less likely on a commercial VPS but can be a factor.
- Service Fails to Start: If
sudo systemctl status teamspeak.service
shows the service is failed or not running, investigate the following:- File Permissions: Incorrect ownership or permissions for files and directories within
/opt/teamspeak3-server/
can prevent the server from starting. Ensure that theteamspeak_user
owns all files and directories recursively and that the start scripts (ts3server_startscript.sh
,ts3server_minimal_runscript.sh
) are executable by this user. Re-run ownership commands if unsure: Bashsudo chown -R teamspeak_user:teamspeak_user /opt/teamspeak3-server/ sudo chmod +x /opt/teamspeak3-server/ts3server_startscript.sh
General Plesk permission issues are sometimes discussed in community forums, and the principle of correct ownership for service execution is universal. - License Not Accepted: The server will not start if the license agreement has not been accepted. Ensure the file
.ts3server_license_accepted
exists in the/opt/teamspeak3-server/
directory and is readable byteamspeak_user
. - Missing Libraries or Dependencies: Official TeamSpeak server builds are generally self-contained and should not require extensive additional libraries on common Linux distributions. However, if specific errors in the logs point to missing libraries, this might need investigation (though it’s uncommon for recent versions).
- Port Already in Use: Another application on the server might already be using one of the ports TeamSpeak requires (9987, 30033, or 10011). Use a command like
sudo ss -tulnp | grep LISTEN
and look for processes listening on these ports. If a conflict exists, either the other service or TeamSpeak’s ports (viats3server.ini
) will need to be changed. - Corrupted Installation Files: If the downloaded archive was corrupted or an error occurred during extraction, the server files might be damaged. An error message like “Cannot find central directory” can indicate a corrupt archive, although this specific message relates to zip files, a similar principle applies to tarballs. Try re-downloading the TeamSpeak server software and re-extracting it.
- Check Logs for Specific Errors: The most valuable information for diagnosing startup failures will be in the logs:
- TeamSpeak server logs:
/opt/teamspeak3-server/logs/
(check the most recentts3server_*.log
file). - Systemd service logs:
sudo journalctl -u teamspeak.service -e
(the-e
flag jumps to the end of the log, showing the most recent entries).
- TeamSpeak server logs:
- File Permissions: Incorrect ownership or permissions for files and directories within
- Privilege Key Not Working / Lost:
- Incorrect Key: Ensure the entire token (privilege key) was copied accurately, without extra spaces or missing characters.
- Key Already Used: The privilege key is for one-time use to claim initial Server Admin status. If it has already been used successfully, it cannot be used again.
- Server Reinitialized / Database Wiped: If the server’s database (
ts3server.sqlitedb
) was deleted and the server restarted, a new, empty database and a new set of credentials (including a new privilege key) would have been generated. The old key would no longer be valid. - Lost Key (Before First Use – Last Resort): If the privilege key was lost before it could be used and there are no other admin accounts, the only straightforward way to regain initial admin access is to reset the server. This involves stopping the server, deleting the
ts3server.sqlitedb
file (WARNING: THIS WILL ERASE ALL SERVER DATA, CHANNELS, PERMISSIONS, ETC.), and then restarting the server. This will force it to generate a new, empty database and a new privilege key, which will be output to the console/logs on its first start. This is a destructive action and should only be considered if the server has no valuable data yet.
Troubleshooting is an iterative process. Systematically checking these common points—firewall, service status, file permissions, and detailed log messages—will typically lead to the source of the problem. Plesk’s SSH Terminal is the primary tool for command-line diagnostics, while the Plesk Firewall interface is used for network rule verification.
XI. A Note on the Deprecated Tea(m)speak Interface Plesk Extension
Administrators searching for methods to install TeamSpeak on a Plesk-managed server might encounter references to a Plesk extension named “Tea(m)speak Interface”. It is important to address the status of this extension to prevent confusion and guide users towards current, viable installation methods.
According to information available directly from the Plesk Extension catalog, the Tea(m)speak Interface extension “is no longer available”. This means that it cannot be installed or used on current Plesk installations.
This guide details the manual installation and configuration of a TeamSpeak 3 server precisely because this dedicated Plesk extension has been deprecated. When it was available, the Tea(m)speak Interface extension reportedly offered features such as one-click installation of the TeamSpeak server software and a web-based interface for managing TeamSpeak instances, potentially simplifying some aspects of deployment and administration.
However, with its discontinuation, the manual setup process described herein is the current standard approach for deploying a TeamSpeak 3 server on a Plesk-managed Linux environment. This ensures that administrators are using a method that is independent of unsupported or outdated Plesk add-ons. Acknowledging the past existence of this extension helps manage expectations for users who may have come across older documentation or forum discussions referencing it.
XII. Conclusion
By following the steps outlined in this guide, administrators should now have a fully functional TeamSpeak 3 server installed, configured, and running reliably on their Plesk-managed Linux VPS. The process has covered acquiring the official software, utilizing Plesk’s File Manager and SSH Terminal for core installation tasks, creating a dedicated user for enhanced security, configuring the Plesk firewall for necessary network access, and ensuring server persistence through the creation of a systemd service. Furthermore, initial connection and claiming of administrator privileges using the unique privilege key have been detailed.
The successful setup of a TeamSpeak server is a significant achievement, providing a powerful platform for voice communication. However, the responsibilities of the server administrator do not end with the installation. Ongoing maintenance is crucial for a secure and stable service. This includes:
- Regularly checking for and applying TeamSpeak server updates using the manual process described, as these are not handled by Plesk’s automated systems.
- Monitoring server logs for any errors or unusual activity.
- Maintaining overall system security by keeping Plesk and the underlying Linux operating system updated.
- Periodically reviewing TeamSpeak server configurations and user permissions to ensure they align with current needs and security best practices.
The use of a systemd service ensures that the TeamSpeak server will start automatically on boot and will be restarted if it unexpectedly crashes, contributing significantly to its uptime and reliability.
It is encouraged to further explore the extensive administration features and permission system within TeamSpeak itself to tailor the server environment to specific community or organizational requirements. With a solid installation foundation, the TeamSpeak server is now ready to host voice communications.
Add comment