serveur 7 days to die
This commit is contained in:
parent
2cd861a769
commit
1705d33608
113
services/sdtdserver.nix
Normal file
113
services/sdtdserver.nix
Normal file
@ -0,0 +1,113 @@
|
||||
{lib, config, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.sdtdserver;
|
||||
gamePath = "/var/lib/sdtdserver";
|
||||
gameOptions = {
|
||||
ServerPort="26900";
|
||||
ServerIsPublic="true";
|
||||
ServerName="Serveur des loutres";
|
||||
ServerPassword="";
|
||||
ServerMaxPlayerCount="16";
|
||||
ServerReservedSlots="0";
|
||||
ServerReservedSlotsPermission="100";
|
||||
ServerAdminSlots="0";
|
||||
ServerAdminSlotsPermission="0";
|
||||
ServerDescription="Un serveur idiot anti gilets jaunes";
|
||||
ServerWebsiteURL="";
|
||||
ServerDisabledNetworkProtocols="UNET";
|
||||
GameWorld="Random Gen";
|
||||
GameName="Loutre Game";
|
||||
GameDifficulty="2";
|
||||
GameMode="GameModeSurvivalMP";
|
||||
ZombiesRun="0";
|
||||
BuildCreate="false";
|
||||
DayNightLength="60";
|
||||
DayLightLength="18";
|
||||
PlayerKillingMode="3";
|
||||
PersistentPlayerProfiles="false";
|
||||
PlayerSafeZoneLevel="5";
|
||||
PlayerSafeZoneHours="5";
|
||||
ControlPanelEnabled="false";
|
||||
ControlPanelPort="8080";
|
||||
ControlPanelPassword="CHANGEME";
|
||||
TelnetEnabled="false";
|
||||
TelnetPort="8081";
|
||||
TelnetPassword="";
|
||||
AdminFileName="serveradmin.xml";
|
||||
DropOnDeath="0";
|
||||
DropOnQuit="0";
|
||||
BloodMoonEnemyCount="8";
|
||||
EnemySpawnMode="true";
|
||||
EnemyDifficulty="0";
|
||||
BlockDurabilityModifier="100";
|
||||
LootAbundance="100";
|
||||
LootRespawnDays="30";
|
||||
LandClaimSize="41";
|
||||
LandClaimDeadZone="30";
|
||||
LandClaimExpiryTime="3";
|
||||
LandClaimDecayMode="0";
|
||||
LandClaimOnlineDurabilityModifier="4";
|
||||
LandClaimOfflineDurabilityModifier="4";
|
||||
AirDropFrequency="72";
|
||||
AirDropMarker="false";
|
||||
MaxSpawnedZombies="60";
|
||||
MaxSpawnedAnimals="50";
|
||||
EACEnabled="true";
|
||||
HideCommandExecutionLog="0";
|
||||
MaxUncoveredMapChunksPerPlayer="131072";
|
||||
BedrollDeadZoneSize="15";
|
||||
};
|
||||
gameConfig = builtins.toFile "serverconfig.xml" ''
|
||||
<?xml version="1.0"?>
|
||||
<ServerSettings>
|
||||
${concatStrings (
|
||||
mapAttrsToList (name: value:
|
||||
" <property name=\"${name}\" value=\"${value}\"/>\n"
|
||||
) gameOptions)}
|
||||
</ServerSettings>
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.services.sdtdserver = {
|
||||
enable = mkEnableOption "Activation du serveur dédié 7 Days to Die";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.services.sdtdserver = {
|
||||
description = "Serveur dédié 7 Days to Die";
|
||||
requires = ["network-online.target"];
|
||||
wantedBy = ["multi-user.target"];
|
||||
environment = { HOME = gamePath; };
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
StateDirectory = "sdtdserver";
|
||||
};
|
||||
preStart = let
|
||||
libPath = with pkgs; lib.makeLibraryPath [
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
in ''
|
||||
${pkgs.steamcmd}/bin/steamcmd +login anonymous +force_install_dir ${gamePath} +app_update 294420 validate +quit
|
||||
${pkgs.patchelf}/bin/patchelf \
|
||||
--set-interpreter "$(cat ${pkgs.gcc}/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${libPath}" \
|
||||
${gamePath}/7DaysToDieServer.x86_64
|
||||
install -m666 ${gameConfig} ${gamePath}/serverconfig.xml
|
||||
'';
|
||||
script = ''
|
||||
${gamePath}/7DaysToDieServer.x86_64 -quit -batchmode -nographics -dedicated -configfile=serverconfig.xml
|
||||
'';
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 26900 ];
|
||||
allowedUDPPorts = [ 26900 26901 26902 ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -19,6 +19,7 @@ in
|
||||
../../services/site-max.nix
|
||||
../../services/auto-pr.nix
|
||||
../../services/python-ci.nix
|
||||
../../services/sdtdserver.nix
|
||||
../../containers/vsftpd.nix
|
||||
];
|
||||
|
||||
@ -360,6 +361,8 @@ in
|
||||
auto-pr.enable = true;
|
||||
|
||||
python-ci.enable = true;
|
||||
|
||||
sdtdserver.enable = true;
|
||||
};
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user