Compare commits

..

4 Commits

Author SHA1 Message Date
1705d33608 serveur 7 days to die 2018-11-26 17:28:46 +01:00
2cd861a769 mise à jour système 2018-11-26 17:28:46 +01:00
1026c2c5f9 pr basée sur non small 2018-11-26 17:28:46 +01:00
49767d8198 update mail server 2018-11-26 17:28:46 +01:00
5 changed files with 122 additions and 9 deletions

View File

@ -17,8 +17,8 @@ in
imports = [ imports = [
(builtins.fetchTarball { (builtins.fetchTarball {
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/817d84d36d34616ecf1a6ed6cba4fb1327b3a74f/nixos-mailserver-817d84d36d34616ecf1a6ed6cba4fb1327b3a74f.tar.gz"; url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/v2.2.0/nixos-mailserver-v2.2.0.tar.gz";
sha256 = "0f7j61nlh4f3nqq3hbw0k4aq4mnmlp12cmkvyfwzrai92lpza4f9"; sha256 = "0gqzgy50hgb5zmdjiffaqp277a68564vflfpjvk1gv6079zahksc";
}) })
]; ];
@ -42,9 +42,6 @@ in
certificateFile = "/var/lib/acme/${cfg.domaine}/fullchain.pem"; certificateFile = "/var/lib/acme/${cfg.domaine}/fullchain.pem";
keyFile = "/var/lib/acme/${cfg.domaine}/key.pem"; keyFile = "/var/lib/acme/${cfg.domaine}/key.pem";
# Length of the Diffie Hillman prime used
dhParamBitLength = 4096;
# Enable IMAP and POP3 # Enable IMAP and POP3
enableImap = true; enableImap = true;
enablePop3 = true; enablePop3 = true;

View File

@ -13,7 +13,7 @@ parser.add_argument('--repo')
parser.add_argument('--cache-dir') parser.add_argument('--cache-dir')
args = vars(parser.parse_args()) args = vars(parser.parse_args())
channel_req = urllib.request.Request(url='https://nixos.org/channels/nixos-18.09-small/git-revision') channel_req = urllib.request.Request(url='https://nixos.org/channels/nixos-18.09/git-revision')
latest_commit = urllib.request.urlopen(channel_req).read().decode('utf-8') latest_commit = urllib.request.urlopen(channel_req).read().decode('utf-8')
try: try:
previous_commit = open(args['cache_dir'] + '/git-revision', 'r').read() previous_commit = open(args['cache_dir'] + '/git-revision', 'r').read()

113
services/sdtdserver.nix Normal file
View 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 ];
};
};
}

View File

@ -5,7 +5,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
gitRev = "b9c2a5800f8d42cedf0545663187597f73ca2b51"; gitRev = "17d85e2162f7a65d8515626692d2ae55226d4680";
nixpkgs = fetchTarball "https://github.com/nyanloutre/nixpkgs/archive/${gitRev}.tar.gz"; nixpkgs = fetchTarball "https://github.com/nyanloutre/nixpkgs/archive/${gitRev}.tar.gz";
in in
{ {

View File

@ -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;
}; };
/* /*