feat: add gtnh server

This commit is contained in:
Katharina 2026-05-23 17:06:34 +02:00
parent d9b7ebf95c
commit cd1e2bd49a
3 changed files with 58 additions and 0 deletions

View file

@ -4,6 +4,14 @@ rec {
domain = "git.nudelerde.de";
};
gtnh = {
port = 25565;
serverPackUrl = "https://downloads.gtnewhorizons.com/ServerPacks/GT_New_Horizons_2.8.4_Server_Java_17-25.zip";
version = "1.7.10";
memory = "12G";
timezone = "Europe/Berlin";
};
"metric-exporter" = {
port = 9100;
collectors = [

View file

@ -5,5 +5,6 @@
./forgejo.nix
./node-exporter.nix
./prometheus.nix
./minecraft.nix
];
}

49
services/minecraft.nix Normal file
View file

@ -0,0 +1,49 @@
{ lib, ... }:
let
serv = import ../config/services.nix;
gtnh = serv.gtnh;
minecraftUid = 2000;
minecraftGid = 2000;
gtnhEnvironment = {
EULA = "TRUE";
TYPE = "FORGE";
VERSION = gtnh.version;
GENERIC_PACK = gtnh.serverPackUrl;
LOAD_ENV_FROM_GENERIC_PACK = "true";
REMOVE_OLD_MODS = "TRUE";
MEMORY = gtnh.memory;
USE_AIKAR_FLAGS = "true";
TZ = gtnh.timezone;
UID = toString minecraftUid;
GID = toString minecraftGid;
};
in {
virtualisation.docker.enable = true;
users.groups.minecraft.gid = minecraftGid;
users.users.minecraft = {
isSystemUser = true;
group = "minecraft";
home = "/var/lib/minecraft";
createHome = true;
uid = minecraftUid;
};
networking.firewall.allowedTCPPorts = [ gtnh.port ];
virtualisation.oci-containers.containers.gtnh = {
image = "itzg/minecraft-server:java21";
autoStart = true;
ports = [
"${toString gtnh.port}:${toString gtnh.port}"
];
volumes = [
"/var/lib/minecraft:/data"
];
environment = gtnhEnvironment;
};
}