I’m trying to install the TeamSpeak 6 Server Beta on TrueNAS Scale 25.04.2.3 but it doesn’t seem to want to work. I want to install the server to the same location I store all of my applications, but it will only launch if I leave the volume as teamspeak-data:/var/tsserver/ in the YAML. The application will launch, but it’s not generating files or logs. I also tried installing it as a custom app, but I received the same result. I know for a fact it’s not a permission issue as I’ve done multiple YAML and custom application installs. I’ve tried looking for support online, but it hasn’t proven fruitful. Any suggestions? I’m going to also ask the TrueNAS community, in case people here don’t have any or much experience with TrueNAS.
teamspeak-data:/var/tsserver/ creates a named volume and not a bind mount. Thus files are being created, but somewhere in the internal docker directories.
When you change this to a bind mount (e.g. ~/teamspeak-data:/var/tsserver/) the server may end in a crash loop depending on whether the mounted directory existed and if so what permissions it has. It needs to exist and be writable for UID 9987…
For some more detailed information on this problem you can look at the GH issue I created: [FR] Better handling of user permissions in docker · Issue #30 · teamspeak/teamspeak6-server · GitHub
Thank you so much for linking that! I first added a new user and group with 9987 as the UID and GID, and it launched. I then removed that group and added user=“1000:1000” (to match the user and group I use for applications) to the YAML and it also worked, which is my preferred way to run it. I appreciate the help!
One way is to specify the container user as root to run normally
docker compose:
services:
teamspeak:
container_name: teamspeak
image: teamspeaksystems/teamspeak6-server:latest
restart: always
user: 0:0
network_mode: host
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- ./volumes:/var/tsserver
environment:
# TS3SERVER_DB_PLUGIN: ts3db_sqlite3
# TS3SERVER_DB_SQLCREATEPATH: create_sqlite
# TS3SERVER_LICENSE: accept
- TSSERVER_LICENSE_ACCEPTED=accept
- TSSERVER_DEFAULT_PORT=9987
- TSSERVER_VOICE_IP=0.0.0.0
- TSSERVER_FILE_TRANSFER_PORT=30033
- TSSERVER_FILE_TRANSFER_IP=0.0.0.0