42 lines
1.1 KiB
Nix
42 lines
1.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
namespace,
|
|
...
|
|
}:
|
|
let
|
|
name = "minecraft";
|
|
cfg = config.${namespace}.services.${name};
|
|
|
|
mincraftConfig = lib.${namespace}.mkModule {
|
|
inherit config name;
|
|
description = "minecraft server";
|
|
options = { };
|
|
moduleConfig = {
|
|
services.minecraft-server = {
|
|
inherit (cfg) openFirewall;
|
|
enable = true;
|
|
eula = true;
|
|
declarative = true;
|
|
dataDir = "${cfg.configDir}/minecraft"; # todo
|
|
serverProperties = {
|
|
enforce-whitelist = true;
|
|
white-list = true;
|
|
"enable-rcon" = true;
|
|
"rcon.password" = config.sops.secrets."jallen-nas/admin_password".path;
|
|
};
|
|
whitelist = {
|
|
mjallen18 = "03d9fba9-4453-4ad1-afa6-c67738685189";
|
|
AlpineScent = "76ff084d-2e66-4877-aec2-d6b278431bda";
|
|
Fortltude = "61a01913-8b10-4d64-b7ce-7958088cd6d3";
|
|
SpicyNick = "8bb5976f-6fd9-4fa5-8697-6ecb4ee38427";
|
|
};
|
|
jvmOpts = "-Xms4092M -Xmx4092M -XX:+UseG1GC -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10";
|
|
};
|
|
};
|
|
};
|
|
in
|
|
{
|
|
imports = [ mincraftConfig ];
|
|
}
|