From 42b5599a6bfaa2b3945849c120391fb656c59bf7 Mon Sep 17 00:00:00 2001 From: mc-fucker Date: Sun, 25 Sep 2022 21:49:43 +0200 Subject: [PATCH] added minecraft fabric --- modules/minecraft.nix | 25 +++++++++++++++++++++ packages/minecraft/derivation.nix | 37 +++++++++++++++++++++++++++++++ systems/mc7/configuration.nix | 5 +++++ 3 files changed, 67 insertions(+) create mode 100644 modules/minecraft.nix create mode 100644 packages/minecraft/derivation.nix diff --git a/modules/minecraft.nix b/modules/minecraft.nix new file mode 100644 index 0000000..71170f2 --- /dev/null +++ b/modules/minecraft.nix @@ -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: diff --git a/packages/minecraft/derivation.nix b/packages/minecraft/derivation.nix new file mode 100644 index 0000000..e5f11f7 --- /dev/null +++ b/packages/minecraft/derivation.nix @@ -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 ]; + }; +} diff --git a/systems/mc7/configuration.nix b/systems/mc7/configuration.nix index 2a0cfe0..d31032a 100644 --- a/systems/mc7/configuration.nix +++ b/systems/mc7/configuration.nix @@ -5,8 +5,13 @@ ./hardware-configuration.nix ./modules/generic.nix ./modules/borg.nix + ./modules/minecraft.nix ]; + system.autoUpgrade = { + allowReboot = false; + }; + system.stateVersion = "22.05"; }