Self Hosted Teamspeak 3 Server

Tags: linux docker

Inhaltsverzeichnis

Teamspeak 3 Server mit Docker selbst hosten

Kürzlich wollte ich mit meinen Freunden ein paar entspannte Runden zocken. Da aber keiner von uns einen Teamspeak-Server hatte, habe ich kurzerhand selbst einen aufgesetzt – und zwar mit Docker! Das Ganze war überraschend einfach und schnell erledigt.

Voraussetzungen

Zuerst brauchst du einen Server, der von außen erreichbar ist. Ich habe dafür einen VPS-Server bei Netcup gemietet, aber du kannst auch bei anderen Anbietern fündig werden. Wichtig ist, dass du ein aktuelles Ubuntu- oder Debian-Betriebssystem nutzt, da ich diese Anleitung darauf abgestimmt habe.

Ein weiterer Punkt: Dein Server sollte auf einem x86-basierten Prozessor laufen. Falls du das Ganze auf einem Raspberry Pi oder einem ARM-basierten Server ausprobieren willst, wirst du auf Probleme stoßen, da die Teamspeak-Images nicht mit ARM kompatibel sind.


Docker installieren

Für die Einrichtung meines Servers nutze ich Docker, weil es den Prozess extrem vereinfacht. In dieser Anleitung erkläre ich nicht, wie Docker installiert wird. Dafür gibt es zahlreiche Tutorials, die dir dabei helfen können.
Hier sind zwei hilfreiche Links:


Docker Compose nutzen

Ich habe für meinen Teamspeak-Server eine Docker-Compose-Datei erstellt, die ich dir hier zur Verfügung stelle. Du kannst den Inhalt einfach kopieren und die Platzhalter durch deine eigenen Werte ersetzen.

Docker-Compose-Datei erstellen und bearbeiten

Öffne die Datei docker-compose.yml mit einem Texteditor:

vim docker-compose.yml

Füge diesen Inhalt ein:

services:
  teamspeak:
    image: teamspeak
    restart: always
    ports:
      - 9987:9987/udp
      - 10011:10011
      - 30033:30033
    environment:
      TS3SERVER_DB_PLUGIN: ts3db_mariadb
      TS3SERVER_DB_SQLCREATEPATH: create_mariadb
      TS3SERVER_DB_HOST: db
      TS3SERVER_DB_USER: root
      TS3SERVER_DB_PASSWORD: <Dein-Sicheres-Passwort>
      TS3SERVER_DB_NAME: teamspeak
      TS3SERVER_DB_WAITUNTILREADY: 30
      TS3SERVER_LICENSE: accept
    volumes:
      - ./teamspeak:/var/ts3server
  db:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: <Dein-Sicheres-Passwort>
      MYSQL_DATABASE: teamspeak
    volumes:
      - ./mariadb/conf:/etc/mysql/conf.d
      - ./mariadb/data:/var/lib/mysql:Z

Achtung: Ersetze <Dein-Sicheres-Passwort> durch ein starkes, individuelles Passwort.


Teamspeak-Server starten

Nachdem du die Datei angepasst und gespeichert hast, kannst du den Server starten:

docker compose up -d

Dein Teamspeak-Server sollte jetzt laufen. Um dich damit zu verbinden, benötigst du einen Berechtigungsschlüssel (ServerAdmin-Token), den du entweder aus den Logs oder dem Log-Ordner des Containers auslesen kannst.

Berechtigungsschlüssel finden

  1. In den Docker-Logs suchen:
docker logs ts3-teamspeak-1

Dort findest du eine Ausgabe ähnlich dieser:

   ------------------------------------------------------------------
                           I M P O R T A N T                           
   ------------------------------------------------------------------
           ServerAdmin privilege key created, please use it to gain 
           serveradmin rights for your virtualserver.
           token=fjhsdfkljsijvmi2jj8efsdjfkjksdklfv
   ------------------------------------------------------------------
  1. Im Log-Ordner nach dem Schlüssel suchen:
    Gehe in den Ordner, den du in der docker-compose.yml unter volumes angegeben hast. Dort gibt es einen Ordner namens logs. Führe den folgenden Befehl aus, um den Schlüssel zu finden:
grep -nr token *

Fazit

Mit diesen einfachen Schritten hast du deinen eigenen Teamspeak-Server aufgesetzt. Docker macht die Verwaltung unglaublich einfach, und du bist in wenigen Minuten bereit.

Viel Spaß beim Zocken! 🎮

Um meine Arbeit und Inhalte zu unterstützen, stelle ich dir einen Affiliate-Link zur Verfügung. Solltest du über diesen Link ein Produkt bei Netcup mieten, erhalte ich eine kleine Provision. Für dich entstehen dadurch keine zusätzlichen Kosten.
Hier der Link:

netcup.com

Transparenz ist mir wichtig:

  • Ich möchte klar stellen, dass dieser Beitrag keinen kommerziellen Charakter hat und rein informative Zwecke verfolgt.
  • Die Nutzung des Affiliate-Links ist vollständig freiwillig. Vielen Dank, falls du dich entscheidest, mich auf diesem Weg zu unterstützen!