Skip to content
This repository has been archived by the owner on Apr 4, 2024. It is now read-only.

qdm12/teamspeak-server-alpine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teamspeak 3.13 Server on Alpine

23MB docker container running a Teamspeak 3.13.6 server

Docker Teamspeak 3.13

Build status

dockeri.co

Last release Last Docker tag Last release size GitHub last release date Commits since release

Latest size

GitHub last commit GitHub commit activity GitHub closed PRs GitHub issues GitHub closed issues

MIT Visitors count

It is based on:

Features

  • Low size
  • Regular healthcheck
  • Runs without root
  • Minimalist (trimmed out mariadb option)
  • Only compatible with amd64 because Teamspeak is only built for amd64

Setup

  1. (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.

  2. 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 database ts3server.sqlitedb, and IP blacklist and whitelist query_ip_blacklist.txt and query_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

Connect to the server

  1. Download a client on your machine from https://www.teamspeak.com/downloads.html#client

  2. Install it and launch it

  3. On your Docker host, enter

    ip address

    You can find your host LAN IP address to use to connect to the Teamspeak server.

  4. 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.

  5. In your Teamspeak client, follow the instructions as shown on the following pictures:

    Client step 1

    Client step 2

    Enter the Docker host LAN IP address as well as your admin token you previously copied.

    Client step 3

    You are now connected as administrator to your Teamspeak server

    Client step 4

    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
  6. Find your router LAN IP address and access it with your web browser, usually at http://192.168.1.1.

  7. 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
  8. 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

  9. In your Teamspeak client, follow the instructions as shown on the following pictures:

    Client step 5

    Client step 6

    Enter the public IP address previously found, or your domain name if you have one.

    Client step 7

    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.

  10. To share it with other people, give them your public IP address or domain name, and the password to access the server

Expired license

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:

  1. Check out which server version you want from files.teamspeak-services.com/releases/server/

  2. Make sure you have git installed

  3. 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.

TODOs

  • Env variables
  • Ban malicious IPs
  • Scratch