Hi! I was looking if anyone had a guide or can tell how to install TeamSpeak easily? I tried to do it myself but I had issue with persistence as every restart would make the app to reset.
Also it would be nice to have it as a native app
Hi! I was looking if anyone had a guide or can tell how to install TeamSpeak easily? I tried to do it myself but I had issue with persistence as every restart would make the app to reset.
Also it would be nice to have it as a native app
If the problem is persistence, you have to switch the storage from iXVolume to Hostpath. iXVolume should only be used for testing since, as you’ve experienced, the storage gets recreated when the app is restarted.
I see where I have miseed that! I used their official docker compose
What would be the correct way/line to add the line to mount the storage to host path in terms of yaml?
I’ve just taken a brief look at the official compose on dockerhub, but don’t see what needs to be mounted for persistence, so i can’t tell you, but my guess is at least the maridadb side container needs persistence.
Edit: OK a bit further down on dockerhub its stated that you should mount
/my/own/datadir:/var/ts3server/
where /my/own/datadir is the path on the truenas box
Edit2:
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: example
TS3SERVER_DB_NAME: teamspeak
TS3SERVER_DB_WAITUNTILREADY: 30
TS3SERVER_LICENSE: accept
volume:
- /my/own/datadir:/var/ts3server/
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: teamspeak
if i didn’t fatfinger the indentation this should fix the persistence problem if you adjust the /my/own/datadir path to the dataset you want to use.
Thank you very much for that! As I understand it should start as /mnt/MyPoolName/etc correct?
Do we need to mount just the teamspeak or mariadb as well? I believe both need to be mounted
yes correct it should be /mnt/Poolname/Datasetname/Teamspeak or something like that
Thank you for all of that it worked well so far except I have a problem.
It cannot connect to the DB and teamspeak cannot create files in the dataset. My only changes to the config were in these lines
TS3SERVER_DB_PASSWORD: example
MYSQL_ROOT_PASSWORD: example
volume:
- /my/own/datadir:/var/ts3server/
Ok i played around with it a bit and i got it up and running with iXVolumes, but not hostpath. I’ll try again tomorrow, but its almost 1am right now and i have to work tomorrow… it’s propably just a permission error but i’m too tired to try right now.
Thanks a lot! Yea i do believe its a permission issue. I tried to assign app UID to the teamspeak by adding this user: "568:568"
but it would remove itself after
I did create an app dataset to see if it helps but there was no change
I’m at work right now, but i’ve had some luck with persistence for the ts container. Right now the db container won’t deploy with hostpath, but that’s a permission issue to 99%. Will try again later today when i’m back from work and if i get it to work will post an updated compose file.
OK a good nights sleep does wonders, i’ve got it working with hostpaths.
In the truenas gui i had do add user 568 and 999 to the acl list for it to start.
Here’s the upated compose file:
services:
teamspeak:
environment:
PGID: 568
PUID: 568
TS3SERVER_DB_HOST: db
TS3SERVER_DB_NAME: teamspeak
TS3SERVER_DB_PASSWORD: example #use same Database Password here
TS3SERVER_DB_PLUGIN: ts3db_mariadb
TS3SERVER_DB_SQLCREATEPATH: create_mariadb
TS3SERVER_DB_USER: root
TS3SERVER_DB_WAITUNTILREADY: 30
TS3SERVER_LICENSE: accept
image: teamspeak
ports:
- 9987:9987/udp
- '10011:10011'
- '30033:30033'
restart: always
volumes:
- /mnt/Plugins/Teamspeak/Server:/var/ts3server/ #replace /mnt/Plugins/Teamspeak/Server with path for the teamspeak files
db:
environment:
MYSQL_DATABASE: teamspeak
MYSQL_ROOT_PASSWORD: example #set Database password
image: mariadb
restart: always
volumes:
- /mnt/Plugins/Teamspeak/db:/var/lib/mysql #replace /mnt/Plugins/Teamspeak/db with path for db storage
Edit:
After first launching the app you have to get the Claim id or whatever it was called, which can be found by viewing the logs of the teamspeak container.
Thank you a lot for your assistance! I did put this down and it worked. I needed to create dataset for apps and added netdata user to the ACL list to cover 999
I did have a problem at first where MariaDB was crashing but it was doing that from some leftover files in the dataset making it to crash.
I guess I also misinterpret user: VS PGID/PUID which didnt want to apply privileges at first.
Thank you a lot for your help!
glad i could help, was fun fiddling around after a longer time. Been almost a year since i last added an app to my stack, i’ll add the teamspeak compose to my private github in case i ever really need it.