treewide: Remove minecraft server

This has fallen into disuse since the big Java vulnerability, and I
have ideas for better ways of doing this. Meanwhile it's making
maintenance and refactoring more difficult.

Hence I'll remove the server completely for the time being.
This commit is contained in:
Tristan Daniël Maat 2022-10-12 01:05:24 +01:00
parent 046a88905d
commit 7095ab2631
Signed by: tlater
GPG key ID: 49670FD774E43268
207 changed files with 5 additions and 17764 deletions
configuration/services

View file

@ -1,141 +0,0 @@
{
config,
pkgs,
lib,
...
}: let
minecraft-server-args = [
"-Xms2G"
"-Xmx2G"
"-Dsun.rmi.dgc.server.gcInterval=2157583646"
"-XX:+UseG1GC"
"-XX:+ParallelRefProcEnabled"
"-XX:MaxGCPauseMillis=200"
"-XX:+UnlockExperimentalVMOptions"
"-XX:+DisableExplicitGC"
"-XX:+AlwaysPreTouch"
"-XX:G1NewSizePercent=30"
"-XX:G1MaxNewSizePercent=40"
"-XX:G1HeapRegionSize=8M"
"-XX:G1ReservePercent=20"
"-XX:G1HeapWastePercent=5"
"-XX:G1MixedGCCountTarget=4"
"-XX:InitiatingHeapOccupancyPercent=15"
"-XX:G1MixedGCLiveThresholdPercent=90"
"-XX:G1RSetUpdatingPauseTimePercent=5"
"-XX:SurvivorRatio=32"
"-XX:+PerfDisableSharedMem"
"-XX:MaxTenuringThreshold=1"
];
ops = pkgs.writeText "ops.json" (builtins.toJSON [
{
uuid = "140d177a-966f-41b8-a4c0-e305babd291b";
name = "TLATER";
level = 4;
bypassesPlayerLimit = true;
}
]);
whitelist = pkgs.writeText "whitelist.json" (builtins.toJSON [
{
uuid = "59cd1648-14a4-4bcf-8f5a-2e1bde678f2c";
name = "romino25";
}
{
uuid = "0ab6e3d1-544a-47e7-8538-2e6c248e49a4";
name = "lasi25";
}
{
uuid = "01c9e737-fc9d-4d55-b8c2-610ca80eb4be";
name = "Nampeyo25";
}
{
uuid = "140d177a-966f-41b8-a4c0-e305babd291b";
name = "tlater";
}
]);
eula = pkgs.writeText "eula.txt" "eula=true";
in {
users = {
extraUsers.minecraft = {
uid = config.ids.uids.minecraft;
group = config.users.extraGroups.minecraft.name;
isSystemUser = true;
description = "Minecraft server user";
};
extraGroups.minecraft = {gid = config.ids.gids.minecraft;};
};
virtualisation.oci-containers.containers.minecraft-voor-kia = let
properties = ./configs/minecraft/voor-kia/server.properties;
icon = ./configs/minecraft/voor-kia/server-icon.png;
in {
image = "tlaternet/minecraft-voor-kia";
imageFile = pkgs.dockerTools.buildImage {
name = "tlaternet/minecraft-voor-kia";
tag = "latest";
contents = [
(pkgs.local.forge-server.override {
jre_headless = pkgs.jdk11_headless;
mods = pkgs.local.voor-kia;
modConfig = ./configs/minecraft/voor-kia/config;
defaultconfigs = ./configs/minecraft/voor-kia/defaultconfigs;
})
];
config = let
uid = toString config.users.extraUsers.minecraft.uid;
gid = toString config.users.extraGroups.minecraft.gid;
in {
Cmd = ["forge-server"] ++ minecraft-server-args;
WorkingDir = "/var/lib/minecraft";
Volumes = {
"/var/lib/minecraft" = {};
# Required because some things will try to write to /tmp,
# which doesn't exist if it's not defined as a volume.
"/tmp" = {};
};
ExposedPorts = {"25565" = {};};
User = "${uid}:${gid}";
};
};
extraOptions = ["--cpus=1.0"];
autoStart = false;
ports = ["25565:25565"];
volumes = [
"minecraft:/var/lib/minecraft"
"${eula}:/var/lib/minecraft/eula.txt:ro"
"${icon}:/var/lib/minecraft/server-icon.png:ro"
"${ops}:/var/lib/minecraft/ops.json:ro"
"${properties}:/var/lib/minecraft/server.properties:ro"
"${whitelist}:/var/lib/minecraft/whitelist.json:ro"
];
};
systemd.timers.podman-minecraft-voor-kia-off = {
description = "Turns off the minecraft server every day at 4 am";
wantedBy = ["podman-minecraft-voor-kia.service"];
timerConfig = {
Unit = "podman-minecraft-voor-kia-starter@stop.service";
OnCalendar = "04:00:00";
};
};
systemd.timers.podman-minecraft-voor-kia-on = {
description = "Turns on the minecraft server every day at 2 pm";
wantedBy = ["podman-minecraft-voor-kia.service"];
timerConfig = {
Unit = "podman-minecraft-voor-kia-starter@start.service";
OnCalendar = "14:00:00";
};
};
systemd.services."podman-minecraft-voor-kia-starter@" = {
description = "Unit to stop/start the minecraft server";
serviceConfig = {
ExecStart = "${pkgs.systemd}/bin/systemctl %i podman-minecraft-voor-kia.service";
Type = "oneshot";
};
};
}