49 lines
1.1 KiB
Nix
49 lines
1.1 KiB
Nix
{ 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;
|
|
};
|
|
}
|