Files
nix-config/modules/services/games/palworld.nix
2025-03-18 16:27:20 +01:00

62 lines
1.5 KiB
Nix

# valheim.nix
{ config, pkgs, lib, ... }:
let
join = builtins.concatStringsSep " ";
in
{
services.cron = {
enable = true;
systemCronJobs = [
"0 6 * * * root systemctl restart palworld"
];
};
networking.firewall.allowedUDPPorts = [ 8211 ]; #5349 ];
users.users.palworld = {
isSystemUser = true;
# Valheim puts save data in the home directory.
home = "/var/lib/palworld";
createHome = true;
homeMode = "750";
group = "palworld";
};
users.groups.palworld = { };
systemd.services.palworld = {
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
serviceConfig = {
ExecStartPre = join [
"${pkgs.steamcmd}/bin/steamcmd"
"+force_install_dir /var/lib/palworld"
"+login anonymous"
"+app_update 2394010"
"+quit"
"&& mkdir -p /var/lib/palworld/.steam/sdk64"
"&& cp /var/lib/palworld/linux64/steamclient.so /var/lib/palworld/.steam/sdk64/."
];
ExecStart = join [
"${pkgs.steam-run}/bin/steam-run /var/lib/palworld/Pal/Binaries/Linux/PalServer-Linux-Test Pal"
"-useperfthreads"
"-NoAsyncLoadingThread"
"-UseMultithreadForDS"
];
Nice = "-5";
PrivateTmp = true;
Restart = "on-failure";
User = "palworld";
WorkingDirectory = "~";
};
environment = {
# linux64 directory is required by Valheim.
LD_LIBRARY_PATH = "/var/lib/palworld/linux64:${pkgs.glibc}/lib";
SteamAppId = "2394010";
};
};
}