Giter VIP home page Giter VIP logo

teamspeak-server-alpine's Introduction

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

teamspeak-server-alpine's People

Contributors

pottah avatar qdm12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

teamspeak-server-alpine's Issues

Deploying the ARMv7 container on Raspberry Pi

Hey !

Thanks for your work on creating a teamspeak server compatible for ARM architecture.

I want to run my teamspeak server on a Raspberry Pi 3B, running Raspbian Linux 9 (stretch), in docker.

I followed your tutorial, but I'm experiencing some problems.

First, there's minor a typo under the 2. CLICK IF YOU HAVE AN ARM DEVICE section, you forgot to set the proper repo name, as it's still written qmcgaw/REPONAME_DOCKER, so I replaced it by qmcgaw/teamspeak3-alpine.

Once this typo fixed, it's building correctly the ARM image :

root@raspberrypi:/# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
qmcgaw/teamspeak3-alpine latest 2b39f9e31d34 27 minutes ago 19.3MB
arm32v7/alpine 3.10 fff333dc0cce 4 weeks ago 3.74MB

But when I try to start the container, using the following command, I get an error.

Container startup command :

docker run --detach --volume "/mnt/teamspeak/data:/teamspeak/data" --volume "/mnt/teamspeak/logs:/teamspeak/logs" -p 9987:9987/udp -p 10011:10011/tcp -p 30033:30033/tcp qmcgaw/teamspeak3-alpine license_accepted=1

The error I get is the following :

root@raspberrypi:/# docker logs faa31fe64956
/teamspeak/data/ts3server.sqlitedb is not readable, please 'chown 1000 data/ts3server.sqlitedb && chmod 700 data/ts3server.sqlitedb' on your host (status 1)

I have created the expected dirs (data and logs) in thefolder /mnt/teamspeak, with 777 perms for now, since I was trying to troubleshoot, but it's not helping.

Folder permissions :

root@raspberrypi:/# ls -al /mnt/teamspeak/
total 16
drwxrwxrwx 4 root root 4096 Sep 21 21:07 .
drwxr-xr-x 3 root root 4096 Apr 24 00:27 ..
drwxrwxrwx 2 root root 4096 Sep 21 21:07 data
drwxrwxrwx 2 root root 4096 Sep 21 21:07 logs

Do you have an idea what could be the problem ?

Thanks

Thomas

TS3 Server not starting on RPI3 ("syntax error")

Hi,
first of all, I am completely new to using Docker, so if I did something silly I apologize.

I'm using a "Raspberry Pi 3 Model B Rev 1.2" with Raspbian 10 (Buster/Stable), ARMv8, 32bit OS.

I want to run the server on a separat user, so I created the user "teamspeak" (UID=1002) and followed your instructions. "docker build" returns Successfully built 58024242829b, Successfully tagged qmcgaw/teamspeak3-alpine:latest. Directories are created and permissions are set.
Starting the server with (minimal):
docker run --volume "/home/teamspeak/data:/teamspeak/data" --volume "/home/teamspeak/logs:/teamspeak/logs" qmcgaw/teamspeak3-alpine license_accepted=1
leads to ./ts3server: line 1: syntax error: unexpected word (expecting ")") and Exit with status 2 (regardless of running as "teamspeak" or "root"). The necessary files in ./data were created, though I had to manually set the right user and permissions.
What can I do to resolve this issue?

keeps asking for privilege key

every time. my teamspeak restarts, it keeps asking for a privilege key. but when i look at the config and database file. it doesn't seem to be saving any information.

outdated

hey mate. any chance of updating this please. when i look at logs. i see this

2021-02-01 22:31:41.944722|CRITICAL|Accounting | |The default license has expired. Please use the latest server version.,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.