teamspeak-systems / ts-services Goto Github PK
View Code? Open in Web Editor NEWTeamSpeak 5 service collection for docker compose deployments
TeamSpeak 5 service collection for docker compose deployments
When I change the ports in the docker-compose.yaml file from 9987 to 9988, the virtual server will still bind to 9987.
docker-compose.yaml
teamspeak:
expose:
- "9988:9988/udp"
- "10012/tcp" # RAW, Telnet
- "10023/tcp" # SSH, 'secure' Telnet
ports:
- "9988:9988/udp"
- "10023:10023/tcp" # SSH, 'secure' Telnet
- "10012:10012/tcp" # RAW, Telnet
docker compose --profile setup pull
docker compose run --rm setup --domain=*** --email=***
docker compose up -d
docker container logs ts-services-teamspeak-1 -f
2023-02-21 15:53:05.046260|INFO |VirtualServerBase|1 |listening on 0.0.0.0:9987, [::]:9987
ts-services beta-58rc18 / teamspeak_server beta14-rc11
The client does ignore the Permission: b_client_channel_textmessage_send on TS5 servers [Server beta-58rc8] which leads to the problem, that you cannot disable the channel chat for example for the entrance hall or an AFK channel.
Can you run both the TS3 server and this beta with the same license?
When trying to migrate my TS3 Server (sqlite) as described by executing docker-compose run --rm setup --domain=/// --email=/// --migrate_driver=sqlite3
i get the following error.
INFO 2023-02-10 15:12:43 Loglevel set to info
INFO 2023-02-10 15:12:43 TeamSpeak Server Setup
INFO 2023-02-10 15:12:43 Setting domain (TEAMSPEAK_DOMAIN) to: ///
INFO 2023-02-10 15:12:43 Setting email (EMAIL) to: ///
INFO 2023-02-10 15:12:43 Using MatrixImage image: matrixdotorg/synapse:v1.61.0
INFO 2023-02-10 15:12:43 Using PostgresImage image: postgres:13-alpine
INFO 2023-02-10 15:12:43 Processing .env start
INFO 2023-02-10 15:12:43 Using already existing .env file: /out/.env
INFO 2023-02-10 15:12:43 Processing .env done
INFO 2023-02-10 15:12:43 Database setup start
INFO 2023-02-10 15:12:43 trying to guess volume and network name for DB container
INFO 2023-02-10 15:12:43 trying to get own container id from cgroups
INFO 2023-02-10 15:12:43 found cgroup id de43de3832ed2ee7e9e2a312ccae98fe3000539fa5efb9fd84506e2d4953140b
INFO 2023-02-10 15:12:43 found container id from match between cgroup and hostname
INFO 2023-02-10 15:12:43 Container ID of postgres:13-alpine is 82baa0d8a2f69cfb231597b1c3b2fc9ce2e8bf36eac9fcbdfeb1729b4cc76083
INFO 2023-02-10 15:12:44 waiting for DB container to be ready
INFO 2023-02-10 15:12:44 initializing Database:
INFO 2023-02-10 15:12:45 setup users:
INFO 2023-02-10 15:12:45 setup databases:
INFO 2023-02-10 15:12:45 starting DB migration using driver sqlite3 and connection string /out/ts3server.sqlitedb
INFO 2023-02-10 15:12:45 opening source database 'sqlite3' '/out/ts3server.sqlitedb'
INFO 2023-02-10 15:12:45 Docker client closed
FATAL 2023-02-10 15:12:45 [main.go:85] CreateDatabase: failed to create db: could not migrate old database: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
ts-services beta-58rc18 / teamspeak_server 3.13.7
I can't use the TeamSpeak server for the homebase. It says it doesn't support homebase yet
ts-services beta-58rc18 / teamspeak_server idk
Is there any recommended way (provided) to host multiple different TeamSpeak server instances (NOT virtual servers). Different dedicated instances with different IPs etc. on a single host?
The port bindings in the docker-compose.yml
are not limited to a single ip. I therefore would need to do it myself.
Additionally, there seems to be quite a significant amount of unnecessary multiple instances of containers (e.g. Traefik, potentially MinIO) when starting multile stacks.
I'd love to see a solution for this.
Hi,
the feeder doesn't work for me. (beta-58rc9)
Here are the logs:
INFO 2022-11-23 17:31:49 Feed run start
INFO 2022-11-23 17:31:49 Collecting matrix data from http://internal-router:8099/_matrix
INFO 2022-11-23 17:31:49 Matrix collector collected 0 rooms
INFO 2022-11-23 17:31:49 Collecting TeamSpeak data from http://internal-router:8099/teamspeak/v1
INFO 2022-11-23 17:31:49 Updating 1 servers
ERROR 2022-11-23 17:31:49 [feeder_service.go:75] Feeding failed: unexpected reply from signing server
INFO 2022-11-23 17:31:49 Feed run done
INFO 2022-11-23 17:41:49 Feed run start
INFO 2022-11-23 17:41:49 Collecting matrix data from http://internal-router:8099/_matrix
INFO 2022-11-23 17:41:49 Matrix collector collected 0 rooms
INFO 2022-11-23 17:41:49 Collecting TeamSpeak data from http://internal-router:8099/teamspeak/v1
INFO 2022-11-23 17:41:49 Updating 1 servers
ERROR 2022-11-23 17:41:49 [feeder_service.go:75] Feeding failed: unexpected reply from signing server
INFO 2022-11-23 17:41:49 Feed run done
INFO 2022-11-23 17:51:49 Feed run start
INFO 2022-11-23 17:51:49 Collecting matrix data from http://internal-router:8099/_matrix
INFO 2022-11-23 17:51:49 Matrix collector collected 0 rooms
INFO 2022-11-23 17:51:49 Collecting TeamSpeak data from http://internal-router:8099/teamspeak/v1
INFO 2022-11-23 17:51:49 Updating 1 servers
ERROR 2022-11-23 17:51:49 [feeder_service.go:75] Feeding failed: unexpected reply from signing server
INFO 2022-11-23 17:51:49 Feed run done
INFO 2022-11-23 18:01:49 Feed run start
INFO 2022-11-23 18:01:49 Collecting matrix data from http://internal-router:8099/_matrix
INFO 2022-11-23 18:01:49 Matrix collector collected 0 rooms
INFO 2022-11-23 18:01:49 Collecting TeamSpeak data from http://internal-router:8099/teamspeak/v1
INFO 2022-11-23 18:01:49 Updating 1 servers
ERROR 2022-11-23 18:01:49 [feeder_service.go:75] Feeding failed: unexpected reply from signing server
INFO 2022-11-23 18:01:49 Feed run done
Is this intentional or not? Thanks in advance and kind regards 😉
When using the provided collect.py script the error "Failed to connect to TeamSpeak 3 webquery. Is the server running?" comes up.
I used
sudo python3 collect.py --path=/var/lib/docker/volumes/teamspeak/_data --apikey=XXXX --webquery=http://localhost:10080
But when I call
curl -X POST http://localhost:10080/1/whoami?api-key=XXXX
I get a positive response with a JSON body.
ts-services beta-58rc20 630e2e5
Will this new TeamSpeak 5 server support Kubernetes?
If yes, is a first-party helm planned?
Hey,
I have just changed a few things in my forked repository and wanted to open respective pull requests here, but it seems like as I can't create any since the final button for "Submit Pull Request" is missing. Probably due to missing permissions.
What are your plans regarding pull requests from the community? Is only TeamSpeak staff allowed to provide changes and improvements or do you also plan to allow the community to provide improvements here?
The documentation lists that:
For HTTPS all network traffic is passed to Traefik. This service is a reverse HTTP proxy. It first decrypts the HTTPS traffic to HTTP. It will then look at the URL that is requested and then send the request to the proper service unencrypted.
As mentioned, Traefik handles HTTPS traffic. By default, Traefik is configured to use Let's Encrypt to obtain and use an SSL certificate for your domain. This default should ensure that the administrator does not need to do any additional steps to setup encryption besides running our setup utility which is discussed later.
This is said to be documented in the docker compose file, however I don't see any configurations that point to the ability to disable the servers built in Let's Encrypt setup.
I run servers behind an Nginx reverse proxy since I have many services that need these ports, and I forward based on domain name.
Am I missing something or is there no ability to disable this functionality at this time?
ts-services beta58-rc20
Hello.
If I start services (docker compose up -d), the teamspeak service keeps restarting and in the service log, there is an error: /opt/tsserver/entrypoint.sh: line 167: /var/tsserver/query_ip_allowlist.txt: Permission denied
It happens only when I use tags beta-58rc20, beta-58rc19, beta-58rc18.
When I used tags beta-58rc12 or beta-58rc10, I didn´t have any problem with starting services.
What am I doing wrong? Thanks for any advices.
Hi,
the newest version (beta58rc18 / v5.0.0-beta14-rc11) has a wrong date format in the build number (v5.0.0-beta14-rc11 [Build: b'1674816245']
instead of v5.0.0-beta14-rc11 [Build: 1674816245]
), which causes TS3 and server lists like ts3index to not correctly parse the build date.
Kind regards
ts-services beta58rc18
/ teamspeak_server v5.0.0-beta14-rc11
Hey,
I still don't get the reason for this new TeamSpeak 5 version.
When you connect to the serverquery interface, it shows you "TS3":
$ ssh serveradmin@localhost -p 10022
serveradmin@localhost's password:
TS3
Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help <command>" for information on a specific command.
serveradmin>
serveradmin> version
version=ede8d9a7 build=1669220335 platform=Linux
error id=0 msg=ok
serveradmin>
Overall, it looks like a TeamSpeak 3 server. Only splitted into microservices. 🤔
What exactly will be the different between the TeamSpeak 3 and 5 server? Except of the fact, that the TeamSpeak 5 server is splitted into microservices.
What is / was the reason for migrating from SQLite and MySQL/MariaDB to PostgreSQL? Will there be a migration tool / solution from e.g. MariaDB to PostgreSQL?
A short table with all available Docker containers and a short description of their purpose would be great. For what is which Docker container responsible? Are they optional or required?
After updating to v5.0.0-beta14-rc2
people can no longer talk normally.
Whispering still works though, so it's not the audio transmission in general.
This is most likely intentional, but a confirmation would be nice.
When you set your homebase to a self-hosted server you can no longer add contacts that have a different homebase.
This is because federation is still disabled.
Here you can see the relevant part of the ts-services-synapse
logs:
2022-11-23 19:49:07,639 - synapse.http.matrixfederationclient - 620 - INFO - GET-1087 - {GET-O-5} [chat.teamspeak.com] Got response headers: 403 Forbidden
2022-11-23 19:49:07,640 - synapse.http.matrixfederationclient - 700 - WARNING - GET-1087 - {GET-O-5} [chat.teamspeak.com] Request failed: GET matrix://chat.teamspeak.com/_matrix/federation/v1/query/profile?user_id=[redacted]%3Achat.teamspeak.com&field=displayname: HttpResponseException('403: Forbidden')
2022-11-23 19:49:07,641 - synapse.http.server - 167 - INFO - GET-1087 - <XForwardedForRequest at 0x7fa84387b280 method='GET' uri='/_matrix/client/r0/profile/[redacted]:chat.teamspeak.com' clientproto='HTTP/1.1' site='8008'> SynapseError: 403 - Federation denied with [redacted].
Will this be changed in the foreseeable future? (Seeing how you already advertised federation on Twitter.)
INFO 2022-12-07 11:00:19 Using config.Matrix.URL = http://internal-router:8099/_matrix
INFO 2022-12-07 11:00:19 Starting EventsScheduler
INFO 2022-12-07 11:00:19 Listening -> address={0.0.0.0:5000}
INFO 2022-12-07 11:00:19 reading serverDB (homebases)
FATAL 2022-12-07 11:00:22 [main.go:472] could not get or create matrix server db -> error={Get "http://internal-router:8099/_matrix/client/r0/directory/room/%23ts_admin_root:beta.msfleet.su": dial tcp 172.22.0.5:8099: connect: no route to host}
INFO 2022-12-07 11:00:24 Loglevel set to info
2022/12/07 11:00:24 reading configuration from os environment
INFO 2022-12-07 11:00:24 Using config.Matrix.URL = http://internal-router:8099/_matrix
INFO 2022-12-07 11:00:24 Starting EventsScheduler
INFO 2022-12-07 11:00:24 Listening -> address={0.0.0.0:5000}
INFO 2022-12-07 11:00:24 reading serverDB (homebases)
FATAL 2022-12-07 11:00:24 [main.go:472] could not get or create matrix server db -> error={matrix retuned error: '404': 404 Not Found}
INFO 2022-12-07 11:00:25 Loglevel set to info
everything started but homebase is not in the selection on the running TS server
Hello,
will the TeamSpeak 5 server support the TeamSpeak 3 client, and if so, will the TS5 server drop support for the TS3 client when the TS5 client comes out of beta?
after I run: docker compose run --rm setup --domain=*** --email=***
->
INFO 2023-09-02 21:17:26 Database setup start
INFO 2023-09-02 21:17:26 trying to guess volume and network name for DB container
INFO 2023-09-02 21:17:26 trying to get own container id from cgroups
INFO 2023-09-02 21:17:26 Container ID of postgres:13-alpine is 4ce366b9cb409f0593fecf0880e759f73b6c346d3522f052c22f39e5c9d977de
INFO 2023-09-02 21:17:26 waiting for DB container to be ready
INFO 2023-09-02 21:17:27 initializing Database:
INFO 2023-09-02 21:28:23 Docker client closed
FATAL 2023-09-02 21:28:23 [main.go:85] CreateDatabase: failed to create db: failed to setup postgres database: could not
connect to database: dial tcp 172.24.0.3:5432: connect: connection timed out
and the log of the db:
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... UTC
creating configuration files ... ok
running bootstrap script ... ok
sh: locale: not found
2023-09-02 21:17:27.145 UTC [30] WARNING: no usable system locales were found
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
Success. You can now start the database server using:
pg_ctl -D /var/lib/postgresql/data -l logfile start
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
waiting for server to start....2023-09-02 21:17:27.671 UTC [36] LOG: starting PostgreSQL 13.12 on x86_64-pc-linux-musl, compiled by gcc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924, 64-bit
2023-09-02 21:17:27.672 UTC [36] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2023-09-02 21:17:27.675 UTC [37] LOG: database system was shut down at 2023-09-02 21:17:27 UTC
2023-09-02 21:17:27.678 UTC [36] LOG: database system is ready to accept connections
done
server started
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
waiting for server to shut down...2023-09-02 21:17:27.810 UTC [36] LOG: received fast shutdown request
.2023-09-02 21:17:27.811 UTC [36] LOG: aborting any active transactions
2023-09-02 21:17:27.814 UTC [36] LOG: background worker "logical replication launcher" (PID 43) exited with exit code 1
2023-09-02 21:17:27.814 UTC [38] LOG: shutting down
2023-09-02 21:17:27.824 UTC [36] LOG: database system is shut down
done
server stopped
PostgreSQL init process complete; ready for start up.
2023-09-02 21:17:27.964 UTC [1] LOG: starting PostgreSQL 13.12 on x86_64-pc-linux-musl, compiled by gcc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924, 64-bit
2023-09-02 21:17:27.964 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2023-09-02 21:17:27.964 UTC [1] LOG: listening on IPv6 address "::", port 5432
2023-09-02 21:17:27.967 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2023-09-02 21:17:27.972 UTC [49] LOG: database system was shut down at 2023-09-02 21:17:27 UTC
2023-09-02 21:17:27.978 UTC [1] LOG: database system is ready to accept connections
ts-services beta-58rc20
same with ts-services beta-58rc12
Hello,
I found this strange behavior with the client's original IP address and docker-proxy.
Using default docker-compose example with
services:
teamspeak:
image: teamspeaksystems/teamspeak_server:58rc12
expose:
- "9987:9987/udp"
ports:
- "9987:9987/udp"
after a successful connection to the server in server logs and client's Connection Info I'm seeing my original IP.
Then let's do a server restart via docker-compose restart teamspeak
and wait till TS client will perform auto reconnecting. Then check IP again - now it's internal docker 172.18.0.1 instead of the real one. Restart TS client and it's again real IP.
Btw, sometimes docker-compose restart goes smoothly (faster?) and I'm seeing real IP. In this case, trying something like that docker-compose stop teamspeak && sleep 10 && docker-compose start teamspeak
helps to reproduce
TS client 5.0.0-beta71 macOS
I would appreciate any suggestions how to workaround this (ideally without network_mode: host)
moin,
kurz und knapp wird es auch eine version ohne traefik geben die über Nginx Reverse Proxy funktioniert?
When i try to create an Room i get Error Code 11 in the Client. [Server beta-58rc8]
Following Error in the Log:
2022-11-22 20:43:20,623 - twisted - 279 - INFO - POST-9708 - ### on create room Requester(user=@ts_0c20a78386de22bff9b0c8382f52b306cc12cab9_472c4ec7-6f77-592f-919e-048ae6df74de:beta.byte-store.de, access_token_id=34, is_guest=0, shadow_banned=False, device_id='EOQMDWLPGR', app_service=None, authenticated_entity='@ts_0c20a78386de22bff9b0c8382f52b306cc12cab9_472c4ec7-6f77-592f-919e-048ae6df74de:beta.byte-store.de') False 2022-11-22 20:43:20,623 - twisted - 279 - INFO - POST-9708 - ### server_id to room_id cache hit: 472c4ec7-6f77-592f-919e-048ae6df74de !qSeLPGARRozNEGGADm:beta.byte-store.de 2022-11-22 20:43:20,624 - twisted - 279 - INFO - POST-9708 - ### admin_room_id !qSeLPGARRozNEGGADm:beta.byte-store.de 2022-11-22 20:43:20,624 - twisted - 279 - INFO - POST-9708 - ### state_ids {} 2022-11-22 20:43:20,624 - twisted - 279 - INFO - POST-9708 - ### no state events found 2022-11-22 20:43:20,625 - twisted - 279 - INFO - POST-9708 - ### admin_event None 2022-11-22 20:43:20,625 - twisted - 279 - INFO - POST-9708 - ### home base users not found 2022-11-22 20:43:20,625 - twisted - 279 - INFO - POST-9708 - ### is_home_base_user: False 2022-11-22 20:43:20,625 - synapse.http.server - 167 - INFO - POST-9708 - <XForwardedForRequest at 0x7f310f453af0 method='POST' uri='/_matrix/client/r0/createRoom' clientproto='HTTP/1.1' site='8008'> SynapseError: 403 - You are not permitted to create rooms 2022-11-22 20:43:20,625 - synapse.access.http.8008 - 450 - INFO - POST-9708 - 88.218.226.21 - 8008 - {@ts_0c20a78386de22bff9b0c8382f52b306cc12cab9_472c4ec7-6f77-592f-919e-048ae6df74de:beta.byte-store.de} Processed request: 0.003sec/0.000sec (0.000sec, 0.000sec) (0.000sec/0.001sec/2) 73B 403 "POST /_matrix/client/r0/createRoom HTTP/1.1" "Go-http-client/2.0" [0 dbevts] 2022-11-22 20:43:20,825 - twisted - 279 - INFO - POST-9709 - ### on create room Requester(user=@ts_0c20a78386de22bff9b0c8382f52b306cc12cab9_472c4ec7-6f77-592f-919e-048ae6df74de:beta.byte-store.de, access_token_id=34, is_guest=0, shadow_banned=False, device_id='EOQMDWLPGR', app_service=None, authenticated_entity='@ts_0c20a78386de22bff9b0c8382f52b306cc12cab9_472c4ec7-6f77-592f-919e-048ae6df74de:beta.byte-store.de') False 2022-11-22 20:43:20,825 - twisted - 279 - INFO - POST-9709 - ### server_id to room_id cache hit: 472c4ec7-6f77-592f-919e-048ae6df74de !qSeLPGARRozNEGGADm:beta.byte-store.de
in docker-compose.yaml you are specifying 1.61 of synapse which is over 6 months out of date, why? just pull from the latest tag
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.