AMPTemplates icon indicating copy to clipboard operation
AMPTemplates copied to clipboard

Team speak 5 server

Open regchanuk opened this issue 3 years ago • 8 comments

Module Request

i did it just downloads the file but not installs it and or runs it

Game Information:

Game Title: Teamspeak 5 server How to obtain: https:// Suppoted OSs: Docker container linux /windows Supports RCON/Console input? think so

I confirm:

  • [x] that I have searched for an existing module request for this application.
  • [x] that the server is an official server distributed by the games publishers/developers.
  • [x] that the server is available to the general public.
  • [x] that the server can be run headless (without a GUI).
  • [x] I have already attempted to create a configuration myself using the configuration tool at https://config.getamp.sh/
  • [x] that my checkboxes above look like the one on the left (remove this line when done)

regchanuk avatar Dec 20 '22 16:12 regchanuk

Oh no... Not again!

IceOfWraith avatar Dec 20 '22 16:12 IceOfWraith

As far as I can see there is no Teamspeak 5 server, the Teamspeak 5 client still uses the TS3 server. Originally a new server version wasn't planned and one is now, although I can't find any further details.

deadlysnek avatar Dec 20 '22 19:12 deadlysnek

please direct your eyes to this beta https://github.com/TeamSpeak-Systems/ts-native/releases/tag/beta-58rc12

regchanuk avatar Dec 21 '22 22:12 regchanuk

the read me file contains

Using the native TS server with docker microservice stack

This setup uses the docker compose to manage the services, using docker-compose.yaml, but the teamspeak service itself is managed outside of it. This includes the binaries, which are distributed via github at:

https://github.com/TeamSpeak-Systems/ts-native/releases/

Setup

It is recommended to start the complete docker stack first as provided by us and perform the setup. This will allow to obtain a valid server YAML config file that can be used afterwards for the native TeamSpeak server setup. After you have performed the setup with docker compose you will be able to obtain a valid server YAML with the following command:

docker exec -it ts-matrix-compose-teamspeak-1 sh -c 'cat /var/run/tsserver/config.yaml' > config.yaml
docker exec -it ts-matrix-compose-teamspeak-1 sh -c 'cat /var/run/tsserver/tsdb.ini' > tsdb.ini

In case you want to inspect the container, use:

docker exec -it ts-matrix-compose_teamspeak_1 sh -c /bin/ash

This config.yaml and tsdb.ini file can then be used to connect the native TS server to the docker microservice stack.

WARNING: It is mandatory to use the same database (PSQL) for the ts-native TS server as well as the docker compose based events and the microservice stack.

disable teamspeak service in docker-compose.yaml

Add it to a different profile so that the 'docker compose up -d' command won't start it by default.

restart: on-failure
profiles:
  - not_used

WARNING: make sure that if you have the docker compose up, that you shut down the teamspeak service.

update the docker-compose endpoints for ts-native

You need to update from this:

http://internal-router:8099/teamspeak/v1

to

http://host.docker.internal:10080/

You might have to update several places, at time of writing it is used by auth, central-search-feeder and matrix-appserver.

WARNING: The 'teamspeak/v1' comes with the docker-compose.yaml router and it is stripped before handing it off to the teamspeak microservice. The ts-native implementation does not understand this, so remove it.

WARNING: Also make sure that the connection uses TLS!

start command

./tsserver_minimal_runscript.sh dbplugin=tsdb_postgresql yamlfile=config.yaml

example YAML

The YAML file will replace the ini file that was used with TS servers. Here you can specify the same options as you are used to for the TS server config ini, just in a different format.

# YAML config for TS server
machine_id: server1
#licensepath: 
query_ip_allowlist: query_ip_allowlist.txt
query_ip_denylist: query_ip_denylist.txt
dbplugin: tsdb_postgresql
dbpluginparameter: tsdb.ini
dbsqlpath: sql/
dbsqlcreatepath: create_postgresql
dbconnections: 10
dbclientkeepdays: 30
logpath: logs
logquerycommands: false
logappend: false
serverquerydocs_path: serverquerydocs
query_port: 10011
filetransfer_port: 30033
default_voice_port: 9988
query_ssh_port: 10022

#teamspeak server commandline paramters
license_accepted: true
query_protocols: http
event_to_db_logging: true
administrative_domain: sub.example.com
webrtc_server_enabled: true
hints_enabled: true

#chat parameters
chat:
  token duration seconds: 60
  jwt shared secret: OBTAINED FROM DOCKER SETUP
  
#api keys parameters
api_keys:
  - custom_id: chat
    hash: OBTAINED FROM DOCKER SETUP
    scope: write

  - custom_id: admin stuff
    hash: OBTAINED FROM DOCKER SETUP
    scope: manage

file transfer:
  settings:
    token duration seconds: 60
    key name: tsserver
    key value: OBTAINED FROM DOCKER SETUP

tsdb ini file

This ini file must be specified in the yaml file (above). It must be configured to point to the Postgres Database.

[config]
host='localhost'
port='5432'
username='PSQLUSER'
password='PSQLPASSWORD'
database='TEAMSPEAKDATABASE'
socket=
wait_until_ready='10'

Example config

manual postgres db setup

CREATE DATABASE teamspeak;
CREATE USER teamspeak WITH ENCRYPTED PASSWORD 'EAq7fENmSn4AvyVatLV019sIlopCNqt4';
GRANT ALL PRIVILEGES ON DATABASE teamspeak TO teamspeak;

WARNING: events microservice needs to access this database also.

docker-compose.yaml

- TSEVENTS_DB_CONNECTION_STRING_TEAMSPEAK=host=postgresql user=teamspeak dbname=teamspeak password=${DB_TEAMSPEAK_PW}

Update the host= part to mypsqlserver.mydomain.com

tsdb.ini file referenced in config.yaml

[config]
host='localhost'
port='5432'
username='teamspeak'
password='EAq7fENmSn4AvyVatLV019sIlopCNqt4'
database='teamspeak'
socket=
wait_until_ready='10'

simple config.yaml config file

machine_id: test1 
#licensepath: 
#http_proxy:
query_ip_allowlist: query_ip_allowlist.txt
query_ip_denylist: query_ip_denylist.txt
dbplugin: tsdb_postgresql
dbpluginparameter: tsdb.ini
dbsqlpath: sql/
dbsqlcreatepath: create_postgresql
dbconnections: 10
dbclientkeepdays: 30
logpath: logs
logquerycommands: false
logappend: false
serverquerydocs_path: serverquerydocs
query_port: 10011
filetransfer_port: 30033
default_voice_port: 9988
query_ssh_port: 10023

#teamspeak server commandline paramters
license_accepted: true
query_protocols: raw,http
event_to_db_logging: true
administrative_domain: ts.teamspeak.com
webrtc_server_enabled: true
hints_enabled: true

#chat parameters
chat:
  token duration seconds: 60
  jwt shared secret: PHd3M3V2WiTF52RHQImDPJ34t1CieB43
  
#api keys parameters
api_keys:
  - custom_id: chat
    hash: 80jVZsQ4RnnKSvffeHubXZDcoNcdj/3a/ETDIZ18qKU=
    scope: write

  - custom_id: admin stuff
    hash: qzwWv4n55sb37uc8536Bhvh/oBvh0W9m/9IewW4=
    scope: manage

#file transfer:
  settings:
    token duration seconds: 60
    key name: tsserver
    key value: SpzqvmmYa/5A+DRX4aYmFHeVeCbKEexH1VD5gXJFyeM=

regchanuk avatar Dec 21 '22 22:12 regchanuk

Someone added this in Discord. The native TS5 server. https://github.com/TeamSpeak-Systems/ts-native

IceOfWraith avatar Dec 26 '22 20:12 IceOfWraith

Just realized it's the same link as above, just the following comments aren't about the native one. Lol

IceOfWraith avatar Dec 26 '22 20:12 IceOfWraith

i was probs the one posted in discord

regchanuk avatar Jan 04 '23 09:01 regchanuk

Also this may help you determine this is the Teamspeak 5 server relating to TS native

https://github.com/TeamSpeak-Systems/ts-native

This repository contains a teamspeak 5 server build for Linux amd64 which does not require docker or docker compose to run.

regchanuk avatar Jan 08 '23 10:01 regchanuk