Skip to content

Latest commit

 

History

History
153 lines (107 loc) · 6.85 KB

README.md

File metadata and controls

153 lines (107 loc) · 6.85 KB

Teamspeak 3.12 Server on Alpine

21MB docker container running a Teamspeak 3.12 server

Docker Teamspeak 3.12

Build Status Docker Build Status

GitHub last commit GitHub commit activity GitHub issues

Docker Pulls Docker Stars Docker Automated

Image size Image version

Image size RAM usage CPU usage
22.3MB 15MB Low

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 \
    -v $(pwd)/data:/teamspeak/data -v $(pwd)/logs:/teamspeak/logs \
    qmcgaw/teamspeak3-alpine license_accepted=1
    • 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

TODOs

  • Env variables
  • Ban malicious IPs
  • Scratch