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/site-max.nix
|
||||||
../../services/auto-pr.nix
|
../../services/auto-pr.nix
|
||||||
../../services/python-ci.nix
|
../../services/python-ci.nix
|
||||||
|
../../services/sdtdserver.nix
|
||||||
../../containers/vsftpd.nix
|
../../containers/vsftpd.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -360,6 +361,8 @@ in
|
|||||||
auto-pr.enable = true;
|
auto-pr.enable = true;
|
||||||
|
|
||||||
python-ci.enable = true;
|
python-ci.enable = true;
|
||||||
|
|
||||||
|
sdtdserver.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user