added minecraft fabric

This commit is contained in:
mc-fucker 2022-09-25 21:49:43 +02:00
parent f3e6b43b42
commit 42b5599a6b
3 changed files with 67 additions and 0 deletions

25
modules/minecraft.nix Normal file
View file

@ -0,0 +1,25 @@
{ pkgs, lib, ... }:
let
fabric_url = "https://meta.fabricmc.net/v2/versions/loader/1.19.2/0.14.9/0.11.1/server/jar";
hash = "sha1-6HYd89yETGaRE6lMqHi/PHT+wMQ=";
version = "1.19.2";
javaVersion = "17";
in
{
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "minecraft-server" ]; #allow single unfree package
services.minecraft-server = {
enable = true;
eula = true;
package = pkgs.callPackage ../packages/minecraft/derivation.nix { sha1=hash; url=fabric_url; version=version; };
openFirewall = true;
jvmOpts = "-Xms4096M -Xmx4096M -XX:+UseG1GC -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10";
};
environment.systemPackages = [ pkgs.mcrcon ];
}
# vim: set et ts=2 sw=2 ai:

View file

@ -0,0 +1,37 @@
{ lib, stdenv, fetchurl, nixosTests, jre_headless, version, url, sha1 }:
stdenv.mkDerivation {
pname = "minecraft-server";
inherit version;
src = fetchurl { inherit url sha1; };
preferLocalBuild = true;
installPhase = ''
mkdir -p $out/bin $out/lib/minecraft
cp -v $src $out/lib/minecraft/server.jar
cat > $out/bin/minecraft-server << EOF
#!/bin/sh
exec ${jre_headless}/bin/java \$@ -jar $out/lib/minecraft/server.jar nogui
EOF
chmod +x $out/bin/minecraft-server
'';
dontUnpack = true;
passthru = {
tests = { inherit (nixosTests) minecraft-server; };
updateScript = ./update.py;
};
meta = with lib; {
description = "Minecraft Server";
homepage = "https://minecraft.net";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.unfreeRedistributable;
platforms = platforms.unix;
maintainers = with maintainers; [ thoughtpolice tomberek costrouc jyooru ];
};
}

View file

@ -5,8 +5,13 @@
./hardware-configuration.nix
./modules/generic.nix
./modules/borg.nix
./modules/minecraft.nix
];
system.autoUpgrade = {
allowReboot = false;
};
system.stateVersion = "22.05";
}