mbentley / docker-teamspeak

TeamSpeak 3 Server Docker Image
69 stars 29 forks source link

Error creating ephemeral license: EXPIRED #23

Closed overfl0w72 closed 4 years ago

overfl0w72 commented 4 years ago

Hey, since today my TS Server on a QNAP NAS has an error.

here the log file:

2020-07-01 09:47:38.153182|ERROR | | |Error creating ephemeral license: EXPIRED
2020-07-01 16:27:48.305344|ERROR | | |Error creating ephemeral license: EXPIRED
2020-07-01 16:29:34.378105|ERROR | | |Error creating ephemeral license: EXPIRED
2020-07-01 16:30:24.267164|INFO |ServerMain | |Received signal SIGTERM, shutting down.
2020-07-01 16:30:24.343163|INFO |VirtualServerBase|1 |stopped
Found a license agreement method; launching TeamSpeak
2020-07-01 16:30:33.774825|INFO |ServerLibPriv | |TeamSpeak 3 Server 3.11.0 (2020-01-13 08:12:37)
2020-07-01 16:30:33.775733|INFO |ServerLibPriv | |SystemInformation: Linux 4.14.24-qnap #1 SMP Fri Dec 6 11:31:31 CST 2019 x86_64 Binary: 64bit
2020-07-01 16:30:33.779161|INFO |DatabaseQuery | |dbPlugin name: SQLite3 plugin, Version 3, (c)TeamSpeak Systems GmbH
2020-07-01 16:30:33.779513|INFO |DatabaseQuery | |dbPlugin version: 3.11.1
2020-07-01 16:30:33.779943|INFO |DatabaseQuery | |checking database integrity (may take a while)
2020-07-01 16:30:35.428419|WARNING |Accounting | |Unable to open licensekey.dat, falling back to limited functionality
2020-07-01 16:30:35.428728|CRITICAL|Accounting | |Failed loading default license file!

What can i do? thanks in advance maurice

mbentley commented 4 years ago

Did you recently update the teamspeak docker image you're running? How are you running teamspeak? (e.g. - Do you have the commands whether it is docker run or compose files)

mbentley commented 4 years ago

Also, if you could get me the output from this command so I can test the exact version you're running, that would be great:

docker images --digests | grep teamspeak
overfl0w72 commented 4 years ago

The image runs in the "Container Station" on a QNAP TS-451 +. Unfortunately, I am not a container specialist. The image has been running for a year now. Googlen said that the license has to be renewed somehow? I took screenshots of all the settings. Thank you in advance.

When I start the container, it ends automatically after 3 seconds. According to the log because the default license cannot be loaded.

1 2 3

mbentley commented 4 years ago

TeamSpeak added a requirement for the end user to accept their license agreement before being able to run the software. You will need to add an environment variable to the container: TS3SERVER_LICENSE=accept to accept the license agreement.

overfl0w72 commented 4 years ago

So do I have to replace the current cell command "license_accepted = 1" with "TS3SERVER_LICENSE = accept "? If so, I somehow find no option to change the start command afterwards :(

4

mbentley commented 4 years ago

Ah, sorry, I missed that glancing over it; that would accomplish the same thing. If you've had this container running for more than a year, then maybe it is hitting the end date that gets generated when the container is launched:

$ docker run -it --rm --name teamspeak \
>   -p 9987:9987/udp -p 30033:30033 -p 10011:10011 -p 41144:41144 \
>   mbentley/teamspeak license_accepted=1
Found a license agreement method; launching TeamSpeak
...
2020-07-01 19:15:00.611427|WARNING |Accounting    |   |Unable to open licensekey.dat, falling back to limited functionality
2020-07-01 19:15:00.620578|INFO    |Accounting    |   |Licensing Information
2020-07-01 19:15:00.620678|INFO    |Accounting    |   |licensed to       : Anonymous
2020-07-01 19:15:00.621047|INFO    |Accounting    |   |type              : No License
2020-07-01 19:15:00.621725|INFO    |Accounting    |   |starting date     : Sat Feb  1 00:00:00 2020
2020-07-01 19:15:00.625800|INFO    |Accounting    |   |ending date       : Mon Feb  1 00:00:00 2021
2020-07-01 19:15:00.625859|INFO    |Accounting    |   |max virtualservers: 1
2020-07-01 19:15:00.625931|INFO    |Accounting    |   |max slots         : 32
2020-07-01 19:15:01.447825|INFO    |              |   |Puzzle precompute time: 787
...

Seems like they time box the non-commercial license versions. I just tried to build a TS 3.11.0 image and it fails to start:

$ docker run -it --rm --name teamspeak   -e TS3SERVER_LICENSE=accept   -p 9987:9987/udp -p 30033:30033 -p 10011:10011 -p 41144:41144   test
Found a license agreement method; launching TeamSpeak
2020-07-01 19:23:10.292867|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.11.0 (2020-01-13 08:12:37)
2020-07-01 19:23:10.293488|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 Binary: 64bit
2020-07-01 19:23:10.293588|INFO    |ServerLibPriv |   |Using hardware aes
2020-07-01 19:23:10.293896|INFO    |DatabaseQuery |   |dbPlugin name:    SQLite3 plugin, Version 3, (c)TeamSpeak Systems GmbH
2020-07-01 19:23:10.294407|INFO    |DatabaseQuery |   |dbPlugin version: 3.11.1
2020-07-01 19:23:10.295453|INFO    |DatabaseQuery |   |checking database integrity (may take a while)
2020-07-01 19:23:10.364837|INFO    |SQL           |   |db_CreateTables() tables created

------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "wJrTLlEV"
------------------------------------------------------------------

2020-07-01 19:23:10.445185|WARNING |Accounting    |   |Unable to open licensekey.dat, falling back to limited functionality
2020-07-01 19:23:10.445829|CRITICAL|Accounting    |   |Failed loading default license file!

I am not sure how you can pull a new image from your QNAP device but I would pull the latest image from mbentley/teamspeak and run the container again. If you did not utilize volumes for your persistent data, you will have to get the data out of the container which will require some command line usage but that is only if you don't have an external volume mapped.

Basically, I can't get any versions of Teamspeak older than 3.12.0 to work anymore and it appears to be a part of a forced upgrade model.

overfl0w72 commented 4 years ago

Thank you for the research and your answer. Teamspeak does indeed use a strange licensing model. Is there a way how I can save my settings such as channels, rights etc. and insert them on a new instance? Similar to a backup? Best regards from Hanover

mlauinger commented 4 years ago

Hi there, If you used the volume for persisting your teamspeak data like @mbentley suggested, you just can start a new container using the same volume and all of your settings/channels etc. should still be there. At least that's what I'm doing once a year :D

mbentley commented 4 years ago

If you did not start teamspeak with a volume, you will need access to a command line where you can run docker commands. Luckily docker does make it pretty easy to copy out contents. Just stop the teamspeak container and assuming that the container name is teamspeak, the command to copy out persistent data would be:

docker cp teamspeak:/data /path/to/where/i/want/my/volume/to/be

That will copy out the whole /data directory which is where all required persistent data lives and drop it in a directory. You will still need to make sure that file and directory ownership are set appropriate as described in the README but if you start a new container that is mapped to that path you placed your persistent data, it will pick it up.