Public | Automated Build

Last pushed: 3 years ago
Short Description
Teamspeak 3 server with support for MariaDB link
Full Description


From ubuntu with TS3 Server, sqlite or MariaDB backends.


  • Ubuntu
  • Teamspeak 3 Server
  • Some files can be injected to host:
    • query_ip_whitelist.txt
    • query_ip_blacklist.txt
    • logs
    • files
    • ts3server.sqlitedb
    • licence
    • ts3server.ini (Not tested)
  • MariaDB Server


  • DNS

    Besides the official question for reference, Does TeamSpeak 3 support DNS SRV records?,
    you should note that if you create a SRV record for you need to point to,
    which in turn needs an A or CNAME records associated.
    In general you should avoid using tsdnsserver executable since it could fail and be
    susceptible to DoS attacks, and the DNS records are fairly easy to set.

  • Infos

    The script looks for an sqlite db in the mounted host-folder, if its found,
    a symlink is created to the ts3-folder inside the container and this means the server
    should use your old ts3 db if you provide one.

    Script will also look for ts3server.ini in linked host-folder.
    This file will also be created if its not found since TS3-server has a parameter for that.
    If you use your own ini-file you may want to link logs and other data to /ts3.
    This way you can mount the directory and backup/persist the data even when upgrading.
    If the ini file was transferred from another ts3-install you may want to make sure the
    following settings are active for the usage of host-mounted volume:

    • query_ip_whitelist='/ts3/query_ip_whitelist.txt'
    • query_ip_backlist='/ts3/query_ip_blacklist.txt'
    • logpath='/ts3/logs/'
    • licensepath='/ts3/'
    • inifile='/ts3/ts3server.ini'

    The files-directory is also currently not persisted in the linked host-folder.

  • Build container
    Just in case you dont wanna use the index.
    docker build

  • Create container
    This creates and starts a docker container in the
    background (-d) with
    direct mapping of the TS3 port (-p 9987:9987/udp)
    and sets the name to TS3.
    {FOLDER} is an absolute path on the host to be mapped by the containers /teamspeak3 folder.
    Injected files are used from this location, see Summary above.
    docker run --name ts3 -d -p 9987:9987/udp -v {FOLDER}:/ts3 devster31/teamspeak3

  • Admin Secret
    After starting the container you probably want to get the Admin secret with: docker logs ts3

  • Upgrading
    Just stop and remove the old container, then start again at "Creating container".
    You may have to pull the image again if its not updating.
    CAUTION: Didnt test if all files are really persisted or if the TS3 process
    overwrites some files. So make sure you have a backup.

  • MariaDB with docker-compose
    Using the docker-compose commands you can spin up 2 containers one of which will
    be the database backend for the teamspeak server.

    1. docker-compose build
    2. docker-compose up -d - a -p voice can be used to replace directory_name with your
      own project name

    The environment variables are as follows:

    • MARIADB_ENV_MYSQL_ADDR - automatically set by docker-compose
    • MARIADB_ENV_MYSQL_PORT - in case you changed the default, not set automatically
    • MARIADB_ENV_MYSQL_USER - automatically set by docker-compose
    • MARIADB_ENV_MYSQL_PASSWORD - automatically set by docker-compose
    • MARIADB_ENV_MYSQL_DATABASE - automatically set by docker-compose

    Since it's a docker container you can't use sockets.

Docker Pull Command
Source Repository