Skip to content

Deployment Overview of TeamSpeak on Server

Prerequisites and Basic Requirements

To deploy the TeamSpeak server and its management interface, the following system requirements must be met:

  • Operating System: Ubuntu (compatible with Docker Engine).

  • Privileges: Root access or a user with sudo privileges.

  • Docker Engine: The Docker runtime must be installed and running.

  • Network Connectivity: The server must have access to the internet for pulling container images and obtaining SSL certificates.

  • Ports: Ensure the following ports are open on the host firewall and router:

  • 9987 (UDP) for voice traffic.

  • 10011 (TCP) for the query interface.

  • 10022 (TCP) for the SSH interface.

  • 30033 (TCP) for file transfers.

  • 41144 (TCP) for file transfers.

  • 443 (TCP) for the HTTPS web interface.

FQDN of the Final Panel

The web management interface for TeamSpeak is accessible via the following Fully Qualified Domain Name (FQDN) format:

  • teamspeak<Server ID>.hostkey.in

  • The application listens on port 443 with SSL/TLS encryption enabled.

File and Directory Structure

The deployment utilizes the following directory structure for persistent data and configuration files:

  • /opt/teamspeak: Stores the primary data for the TeamSpeak server container.

  • /opt/tsi-web: Stores the data and configuration for the TS3-Manager web interface container.

  • /data/nginx: Contains the Nginx configuration and SSL certificates.

  • /data/nginx/user_conf.d: Holds the specific server configuration for the TeamSpeak proxy.

  • /root/nginx: Contains the Docker Compose definition for the proxy stack.

Application Installation Process

The application is deployed using Docker containers. The installation consists of two main components: the TeamSpeak server and the TS3-Manager web interface.

  • TeamSpeak Server:

  • Container Name: teamspeak

  • Image: teamspeak:latest

  • License: Auto-accepts the license agreement via environment variable TS3SERVER_LICENSE="accept".

  • TS3-Manager Web Interface:

  • Container Name: ts3-manager

  • Image: joni1802/ts3-manager:v2.2.3

  • Authentication: A unique JWT_SECRET is generated at deployment time to secure the web session.

Docker Containers and Their Deployment

The deployment utilizes the Docker bridge network to facilitate communication between the host and the containers.

  • Network Configuration:

  • Both containers operate on the bridge network.

  • The TeamSpeak container includes a health check that verifies connectivity on port 10022.

  • Volume Mounts:

  • The TeamSpeak container mounts /opt/teamspeak to /data inside the container.

  • The TS3-Manager container mounts /opt/tsi-web to /app/data inside the container.

  • Port Mappings:

  • The TS3-Manager container maps internal port 8080 to host port 8080.

Proxy Servers

Access to the TS3-Manager web interface is handled by an Nginx container named nginx-certbot. This setup provides SSL/TLS encryption via Certbot.

  • Container Image: jonasal/nginx-certbot:latest

  • Functionality:

  • Listens on port 443 for HTTPS traffic.

  • Redirects HTTP traffic (port 80) to HTTPS.

  • Proxies requests to the TS3-Manager backend running at http://127.0.0.1:8080.

  • Certificate Management:

  • Uses the Certbot tool to obtain and renew SSL certificates for the domain.

  • Stores certificates in /etc/letsencrypt (mapped via the nginx_secrets volume).

  • Configuration:

  • Server configuration is located in /data/nginx/user_conf.d/ with a filename matching the final domain.

  • The Docker Compose definition for the proxy is stored in /root/nginx/compose.yml.

Available Ports for Connection

The following ports are exposed on the host server for direct access to the TeamSpeak services and the management interface:

Port Protocol Service Description
9987 UDP TeamSpeak Voice Main voice communication channel.
10011 TCP TeamSpeak Query Server query interface.
10022 TCP TeamSpeak SSH SSH access to the server instance.
30033 TCP TeamSpeak File File transfer service.
41144 TCP TeamSpeak File Additional file transfer service.
443 TCP TS3-Manager Secure web interface (HTTPS).
8080 TCP TS3-Manager Direct web interface (HTTP, proxied by Nginx).

Starting, Stopping, and Updating

The TeamSpeak and TS3-Manager containers are managed by the Docker daemon with the restart_policy set to unless-stopped.

  • Restart Policy: Both containers are configured to restart automatically unless manually stopped.

  • Container Management: Standard Docker commands are used to manage the lifecycle of the containers.

  • To stop the TeamSpeak container: docker stop teamspeak

  • To start the TeamSpeak container: docker start teamspeak

  • To stop the TS3-Manager container: docker stop ts3-manager

  • To start the TS3-Manager container: docker start ts3-manager

  • Proxy Management: The Nginx proxy stack is managed via Docker Compose in the /root/nginx directory.

  • To restart the proxy: docker compose up -d (executed from /root/nginx).

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×