79 lines
2.0 KiB
Nix
79 lines
2.0 KiB
Nix
{ pkgs, config, lib, ... }:
|
|
let
|
|
rsyncSSHKeys = config.users.users.agatha.openssh.authorizedKeys.keys
|
|
++ config.users.users.julia.openssh.authorizedKeys.keys;
|
|
|
|
jre8 = pkgs.temurin-bin-8;
|
|
jre17 = pkgs.temurin-bin-17;
|
|
|
|
jvmOpts = lib.concatStringsSep " " [
|
|
"-XX:+UseG1GC"
|
|
"-XX:+ParallelRefProcEnabled"
|
|
"-XX:MaxGCPauseMillis=200"
|
|
"-XX:+UnlockExperimentalVMOptions"
|
|
"-XX:+DisableExplicitGC"
|
|
"-XX:+AlwaysPreTouch"
|
|
"-XX:G1NewSizePercent=40"
|
|
"-XX:G1MaxNewSizePercent=50"
|
|
"-XX:G1HeapRegionSize=16M"
|
|
"-XX:G1ReservePercent=15"
|
|
"-XX:G1HeapWastePercent=5"
|
|
"-XX:G1MixedGCCountTarget=4"
|
|
"-XX:InitiatingHeapOccupancyPercent=20"
|
|
"-XX:G1MixedGCLiveThresholdPercent=90"
|
|
"-XX:G1RSetUpdatingPauseTimePercent=5"
|
|
"-XX:SurvivorRatio=32"
|
|
"-XX:+PerfDisableSharedMem"
|
|
"-XX:MaxTenuringThreshold=1"
|
|
];
|
|
|
|
serverDefaults = {
|
|
white-list = true;
|
|
spawn-protection = 0;
|
|
allow-flight = true;
|
|
max-tick-time = 2 * 60 * 1000;
|
|
};
|
|
in {
|
|
services.modded-minecraft-servers = {
|
|
eula = true;
|
|
|
|
instances = {
|
|
# End to End encrypted modded minecraft yay
|
|
e2e = {
|
|
enable = false;
|
|
inherit rsyncSSHKeys jvmOpts;
|
|
|
|
jvmInitialAllocation = "1G";
|
|
jvmMaxAllocation = "8G";
|
|
jvmPackage = jre8;
|
|
|
|
serverConfig = serverDefaults // {
|
|
server-port = 25565;
|
|
rcon-port = 25566;
|
|
motd = "Enigmeowtica 2: Expert";
|
|
extra-options.level-type = "BIOMESOP";
|
|
};
|
|
};
|
|
enigmatica-8 = {
|
|
enable = false;
|
|
inherit rsyncSSHKeys jvmOpts;
|
|
|
|
jvmInitialAllocation = "1G";
|
|
jvmMaxAllocation = "8G";
|
|
jvmPackage = jre17;
|
|
|
|
serverConfig = serverDefaults // {
|
|
server-port = 25567;
|
|
rcon-port = 25568;
|
|
motd = "Enigmeowtica 8";
|
|
max-tick-time = 300000;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.services.mc-e2e.path = with pkgs; [ getconf gawk ];
|
|
|
|
users.users.agatha.packages = with pkgs; [ mcrcon ];
|
|
}
|