Running Teamspeak3/Service from <nixos-unstable> not working

I am trying to install “Teamspeak3” from the channel “nixos-unstable”. Unfortunately, it’s not working.

Here’s what I did:

# nix-channel --list
nixos https://nixos.org/channels/nixos-19.09
nixos hardware https://github.com/NixOS/nixos-hardware/archive/master.tar.gz
nixos-unstable https://nixos.org/channels/nixos-unstable
{ config, lib, pkgs, ... }:
let
  baseconfig = { allowUnfree = true; };
  unstable = import <nixos-unstable> { config = baseconfig; };
in
{
  imports = [
      <nixos-unstable/nixos/modules/services/networking/teamspeak3.nix>
  ];
  disabledModules = [
    "services/networking/teamspeak3.nix"
  ];
  nixpkgs.config = baseconfig // {
    packageOverrides = pkgs: {
      teamspeak3 = unstable.teamspeak3;
    };
  };
  services.teamspeak3.enable = true;
}

What am I doing wrong?
Thanks.

Can you also paste the output of the error?

Hi @zimbatm, there is no error.

nixos1-1 nixos (teamspeak) # nixos-rebuild switch
building Nix...
building the system configuration...
5 blocks
5 blocks
5 blocks
5 blocks
5 blocks
5 blocks
activating the configuration...
setting up /etc...
reloading user units for sysadmin...
setting up tmpfiles
nixos1-1 nixos (teamspeak) #

Ok so maybe the service hasn’t started?

The next thing to do is to look at the implementation.

You can see that it’s defining a “teamspeak3-server” service. Maybe it’s not running?
You can also run sudo journalctl -u teamspeak3-server to get the logs from that service.

Jepp, that’s my main problem.

nixos1-1 nixos (teamspeak*) # systemctl stop teamspeak3-server.service
nixos1-1 nixos (teamspeak*) # rm -rf /var/log/teamspeak3-server /var/lib/teamspeak3-server
nixos1-1 nixos (teamspeak*) # nixos-rebuild switch
building Nix...
building the system configuration...
5 blocks
5 blocks
5 blocks
5 blocks
5 blocks
5 blocks
activating the configuration...
setting up /etc...
reloading user units for sysadmin...
setting up tmpfiles
nixos1-1 nixos (teamspeak*) # systemctl status teamspeak3-server.service
● teamspeak3-server.service - Teamspeak3 voice communication server daemon
   Loaded: loaded (/nix/store/xc9y7hk7gckma4qwhak00b0inyy8chcf-unit-teamspeak3-server.service/teamspeak3-server.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2020-02-13 19:15:10 CET; 6s ago
  Process: 24913 ExecStart=/nix/store/xv1r01aa81cvwszfm31b372734gk1f37-teamspeak-server-3.9.1/bin/ts3server dbsqlpath=/nix/store/xv1r01aa81cvwszfm31b372734gk1f37-teamspeak-ser>
 Main PID: 24913 (code=exited, status=1/FAILURE)
       IP: 0B in, 120B out
      CPU: 33ms

Feb 13 19:15:10 nixos1-1 ts3server[24913]:                       I M P O R T A N T
Feb 13 19:15:10 nixos1-1 ts3server[24913]: ------------------------------------------------------------------
Feb 13 19:15:10 nixos1-1 ts3server[24913]:                Server Query Admin Account created
Feb 13 19:15:10 nixos1-1 ts3server[24913]:          loginname= "serveradmin", password= "QI1kvrf0"
Feb 13 19:15:10 nixos1-1 ts3server[24913]: ------------------------------------------------------------------
Feb 13 19:15:10 nixos1-1 ts3server[24913]: 2020-02-13 18:15:10.290517|WARNING |Accounting    |   |Unable to open licensekey.dat, falling back to limited functionality
Feb 13 19:15:10 nixos1-1 ts3server[24913]: 2020-02-13 18:15:10.290569|CRITICAL|Accounting    |   |Failed loading default license file!
Feb 13 19:15:10 nixos1-1 systemd[1]: teamspeak3-server.service: Main process exited, code=exited, status=1/FAILURE
Feb 13 19:15:10 nixos1-1 systemd[1]: teamspeak3-server.service: Failed with result 'exit-code'.
Feb 13 19:15:10 nixos1-1 systemd[1]: teamspeak3-server.service: Consumed 33ms CPU time, received 0B IP traffic, sent 120B IP traffic.

I’m pretty sure this has something to do with that:

Therefore I wanted to try version 3.10.X from the “unstable” channel first. But it seems that these are two independent problems.

  • Why is Teamspeak in general not working anymore?
  • Why does the upgrade not work for version 3.10.X, on the “unstable” channel?

This is driving me crazy! :crazy_face:
Thanks!

Ahhh found it!

   nixpkgs.config = baseconfig // {
     packageOverrides = pkgs: {
-      teamspeak3 = unstable.teamspeak3;
+      teamspeak_server = unstable.teamspeak_server;
     };
   };
nixos1-1 nixos (teamspeak*) # systemctl status teamspeak3-server.service
● teamspeak3-server.service - Teamspeak3 voice communication server daemon
   Loaded: loaded (/nix/store/hfmalqdbawq54d3by9mnzjnsf99zqw7q-unit-teamspeak3-server.service/teamspeak3-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-02-13 20:39:55 CET; 1min 4s ago
 Main PID: 1558 (ts3server)

Active and running!

2 Likes

Can you please post your entire configuration? Somehow I am unable to reproduce…

This is not possible. At some point, if the version of Teamspeak is too old, it will automatically stop working and you have to update.

I see, is this because the current version of teamspeak server in the nixpkgs module is 3.10.2 as opposed to the latest version 3.12.1? could I create a more recent version in a local copy of nixpkgs that I include with:

  nixpkgs.config = {
    allowUnfree = true;
    packageOverrides = pkgs: {
      local = import ../nixpkgs
      {
        # pass the nixpkgs config to the unstable alias
        # to ensure `allowUnfree = true;` is propagated:
        config = config.nixpkgs.config;
      };
    };
  };

and then tell the module to fetch the package from that local repo instead?

Yes! My solution: Use the version from nixos-unstable channel.
https://search.nixos.org/packages?query=teamspeak

Thanks for getting back so fast. How would I do that though? I also tried fetching packages from unstable as to this answer but how do I tell services.teamspeak3.enable = true; to use the ts3 server from unstable?

Example with “nixos-unstable” NOT “unstable”!

nix-channel --list

nixos https://nixos.org/channels/nixos-20.03
nixos-hardware https://github.com/NixOS/nixos-hardware/archive/master.tar.gz
nixos-unstable https://nixos.org/channels/nixos-unstable

/etc/nixos/modules/services/teamspeak.nix:

{ config, lib, pkgs, ... }:

let

  baseconfig = { allowUnfree = true; };
  unstable = import <nixos-unstable> { config = baseconfig; };

in {

  imports = [ <nixos-unstable/nixos/modules/services/networking/teamspeak3.nix> ];
  disabledModules = [ "services/networking/teamspeak3.nix" ];

  nixpkgs.config = baseconfig // { packageOverrides = pkgs: { teamspeak_server = unstable.teamspeak_server; }; };

  services.teamspeak3.enable = true;

}

Thanks a lot!! That helped me :slight_smile: