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
sudoprivileges. -
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
443with 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_SECRETis 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
bridgenetwork. -
The TeamSpeak container includes a health check that verifies connectivity on port
10022. -
Volume Mounts:
-
The TeamSpeak container mounts
/opt/teamspeakto/datainside the container. -
The TS3-Manager container mounts
/opt/tsi-webto/app/datainside the container. -
Port Mappings:
-
The TS3-Manager container maps internal port
8080to host port8080.
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
443for 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 thenginx_secretsvolume). -
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/nginxdirectory. -
To restart the proxy:
docker compose up -d(executed from/root/nginx).