Size optimised docker image based on alpine.
Extensively tested on netcup 2.99€/a VPS.
Build for Ts3.Party.
- Docker Registry @ kleberbaum/teamspeak
- GitHub @ kleberbaum/docker-teamspeaky
TeamSpeak is proprietary voice-over-Internet Protocol (VoIP) software for audio communication between users on a chat channel, much like a telephone conference call. Users typically use headphones with a microphone. The client software connects to a TeamSpeak server of the user's choice, from which the user may join chat channels.
$ docker run -d --name teamspeak \
-p 9987:9987/udp \
-p 30033:30033 \
-p 10011:10011 \
kleberbaum/teamspeak:latest
docker run -d --name teamspeak \
-v ${PWD}/config:/teamspeak/config \
-v ${PWD}/files:/teamspeak/files \
-v ${PWD}/logs:/teamspeak/logs \
-v ${PWD}/data:/teamspeak/data \
-p 9987:9987/udp \
-p 30033:30033 \
-p 10011:10011 \
kleberbaum/teamspeak:latest
version: '2'
services:
teamspeak:
image: kleberbaum/teamspeak:latest
environment:
- TS_DBPLUGIN=ts3db_mariadb
- TS_DBSQLCREATEPATH=create_mariadb/
- TS_DBHOST=mysql
- TS_DBDATABASE=teamspeak
- TS_DBPASSWORD=changeme
volumes:
- ./files:/teamspeak/files
- ./logs:/teamspeak/logs
links:
- mysql
ports:
- 9987:9987/udp
- 10011:10011
- 30033:30033
mysql:
image: mariadb:latest
environment:
- MYSQL_DATABASE=teamspeak
- MYSQL_ROOT_PASSWORD=b3secure
volumes:
- ./mysql:/var/lib/mysql
This images uses docker entrypoint for starting the server. Cmd can be used to append paramters to the start command. Full list of parameters can be found at the official quick-start guilde. A few parameters are predefined to have a simpler docker setup:
licensepath=config/ createinifile=1 inifile=config/ts3server.ini query_ip_whitelist=config/query_ip_whitelist.txt query_ip_blacklist=config/query_ip_blacklist.txt dbpluginparameter=config/ts3db.ini
You can override the predefined parameter with your own. For example by enabling log append instead of creating a new log file on each startup:
$ docker run -d --name teamspeak -v ${PWD}/logs:/teamspeak/logs kleberbaum/teamspeak:latest logappend=1
Instead of using commandline parameters a config file can be used. This file is located in data/ts3server.ini
. An example of a config file can be found in the following snippet:
machine_id=
default_voice_port=1337
voice_ip=0.0.0.0
licensepath=config/
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
query_ip_whitelist=config/query_ip_whitelist.txt
query_ip_blacklist=config/query_ip_blacklist.txt
dbplugin=ts3db_sqlite3
dbpluginparameter=config/ts3db.ini
dbsqlpath=sql/
dbsqlcreatepath=create_sqlite/
dbconnections=10
logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0
If you want to use MariaDB/MySQL instead of the default SQLite you have to define a own config file with the connection settings. This config file is located in data/ts3db.ini
. An example of a config file can be found in the following snippet:
[config]
host=localhost
port=3306
username=teamspeak
password=x5gUjs
database=ts3db
socket=
This image supports environment variables for the TeamSpeak server.
🔴 Mapped to commandline parameter 🔷 Mapped to ts3db.ini
Variable | Default |
---|---|
🔴 TS_CLEAR_DATABASE | 0 |
🔴 TS_CREATE_DEFAULT_VIRTUALSERVER | 1 |
🔴 TS_CREATEINIFILE | 1 |
🔴 TS_DBCLIENTKEEPDAYS | 90 |
🔴 TS_DBCONNECTIONS | 10 |
🔷 TS_DBDATABASE | test |
🔷 TS_DBHOST | 127.0.0.1 |
🔴 TS_DBLOGKEEPDAYS | 90 |
🔷 TS_DBPASSWORD | <empty> |
🔴 TS_DBPLUGIN | ts3db_sqlite3 |
🔴 TS_DBPLUGINPARAMETER | config/ts3db.ini |
🔷 TS_DBPORT | 3306 |
🔷 TS_DBSOCKET | <empty> |
🔴 TS_DBSQLCREATEPATH | create_sqlite/ |
TS_DBSQLITE | data/ts3server.sqlitedb |
🔴 TS_DBSQLPATH | sql/ |
🔷 TS_DBUSERNAME | root |
🔴 TS_DEFAULT_VOICE_PORT | 9987 |
🔴 TS_FILETRANSFER_IP | 0.0.0.0,0::0 |
🔴 TS_FILETRANSFER_PORT | 30033 |
🔴 TS_INIFILE | config/ts3server.ini |
🔴 TS_LICENSEPATH | config/ |
🔴 TS_LOGAPPEND | 0 |
🔴 TS_LOGPATH | logs/ |
🔴 TS_LOGQUERYCOMMANDS | 1 |
🔴 TS_MACHINE_ID | <empty> |
🔴 TS_NO_PERMISSION_UPDATE | 0 |
🔴 TS_QUERY_BUFFER_MB | 20 |
🔴 TS_QUERY_IP | 0.0.0.0,0::0 |
🔴 TS_QUERY_IP_BLACKLIST | config/query_ip_blacklist.txt |
🔴 TS_QUERY_IP_WHITELIST | config/query_ip_whitelist.txt |
🔴 TS_QUERY_PORT | 10011 |
🔴 TS_QUERY_SKIPBRUTEFORCECHECK | 0 |
🔴 TS_VOICE_IP | 0.0.0.0,0::0 |
- Uses a clean alpine:latest as base
- Uses a init (krallin/tini)
- Build with a clean Dockerfile
- Used by ts3.party ^^