{ pkgs, lib, system, ... }: let ts = pkgs.callPackage ./package.nix { inherit system; }; in { systemd.services.teamspeak6-server = { description = "Teamspeak6 voice communication server daemon"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; environment.LD_LIBRARY_PATH="${ts}/lib"; serviceConfig = { ExecStart = '' ${lib.getExe ts} --accept-license --db-sql-create-path ${ts}/share/teamspeak/sql/create_sqlite/ --db-sql-path ${ts}/share/teamspeak/sql/ --log-path /var/lib/teamspeak/ ''; StateDirectory = "teamspeak"; WorkingDirectory = "/var/lib/teamspeak"; DynamicUser = true; User = "teamspeak"; Group = "teamspeak"; Restart = "on-failure"; }; }; networking.firewall.allowedTCPPorts = [ 30033 # file transfer 9987 # voice 10080 # server query http 10022 # server query ssh ]; networking.firewall.allowedUDPPorts = [ 30033 # file transfer 9987 # voice 10080 # server query http 10022 # server query ssh ]; }