23MB docker container running a Teamspeak 3.13.6 server
It is based on:
- Low size
- Regular healthcheck
- Runs without root
- Minimalist (trimmed out mariadb option)
- Only compatible with amd64 because Teamspeak is only built for amd64
-
(If you want persistence) Create two directories
./data
and./logs
and apply the correct ownership and permissions with:mkdir -p data logs chown 1000 data logs chmod 700 data logs
Note that you can set
chown
to another UID (i.e.8000
) provided you run the container with--user=8000
. -
Use the following command:
docker run -d -p 9987:9987/udp -p 10011:10011/tcp -p 30033:30033/tcp \ -e TS3SERVER_LICENSE=accept \ -v $(pwd)/data:/teamspeak/data -v $(pwd)/logs:/teamspeak/logs \ qmcgaw/teamspeak3-alpine
- The UDP port 9987 is used for the main voice server
- The TCP port 10011 is used for file transfers
- The TCP port 30033 is used for remote management
- The
data
directory contains the databasets3server.sqlitedb
, and IP blacklist and whitelistquery_ip_blacklist.txt
andquery_ip_whitelist.txt
- The
logs
directory contains text log files
or use docker-compose.yml with:
docker-compose up -d
On the first run, if your bind mounts contain no files, you will have likely to run on your host:
chmod 700 data/ts3server.sqlitedb
-
Download a client on your machine from https://www.teamspeak.com/downloads.html#client
-
Install it and launch it
-
On your Docker host, enter
ip address
You can find your host LAN IP address to use to connect to the Teamspeak server.
-
On your Docker host, enter the following:
docker logs teamspeak
You should see a few lines similar to:
2018-04-16 02:54:18.228719|WARNING |VirtualServer |1 |-------------------------------------------------------- 2018-04-16 02:54:18.228789|WARNING |VirtualServer |1 |ServerAdmin privilege key created, please use the line below 2018-04-16 02:54:18.228825|WARNING |VirtualServer |1 |token=u3bJyR+ZcUJRxgJ+CKsJmQgygR+gMuPMz7qkyaQa 2018-04-16 02:54:18.228855|WARNING |VirtualServer |1 |--------------------------------------------------------
Copy the token
u3bJyR+ZcUJRxgJ+CKsJmQgygR+gMuPMz7qkyaQa
to identify as the administrator using the Teamspeak client. -
In your Teamspeak client, follow the instructions as shown on the following pictures:
Enter the Docker host LAN IP address as well as your admin token you previously copied.
You are now connected as administrator to your Teamspeak server
You might want now to:
- Set encrypted voice communication globally on (right click on server -> Edit virtual server -> Security tab -> Channel voice encryption (bottom) )
- Set a password
- Set permissions
- Set up and modify channels
-
Find your router LAN IP address and access it with your web browser, usually at http://192.168.1.1.
-
Forward the following ports on your router:
- TCP 10011 -> 10011 for your Docker host
- TCP 30033 -> 30033 for your Docker host
- UDP 9987 -> 9987 for your Docker host
-
On your Docker host, enter
wget -qO- https://ipinfo/ip
This is the public IP address of your Docker host and therefore of your Teamspeak server for people outside your network
-
In your Teamspeak client, follow the instructions as shown on the following pictures:
Enter the public IP address previously found, or your domain name if you have one.
You should now be connected to your Teamspeak server as before. Note that your credentials data is stored on your computer so it won't ask you for the admin token or a password.
-
To share it with other people, give them your public IP address or domain name, and the password to access the server
If you get a message similar to:
The default license has expired. Please use the latest server version
Then you can try first pulling the lates image docker pull qmcgaw/teamspeak3-alpine
or build it yourself.
To build yourself:
-
Check out which server version you want from files.teamspeak-services.com/releases/server/
-
Make sure you have
git
installed -
Run this build command (which is also quick):
docker build --build-arg TEAMSPEAK_VERSION=3.13.6 \ -t qmcgaw/teamspeak3-alpine \ https://github.com/qdm12/teamspeak-server-alpine.git
You can also specify the build argument
--build-arg ALPINE_VERSION=3.14
if you want.
- Env variables
- Ban malicious IPs
- Scratch