summary refs log tree commit diff stats
path: root/services/minecraft.nix
blob: aec2f62addbb97106bbc44b64087c58976a60c94 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{config, ...}: {
  users.users.minecraft = {
    isSystemUser = true;
  };
  systemd.services.minecraft = {
    wantedBy = "multi-user.target";
    after = "network.target";
    description = "Minecraft Server";
    serviceConfig = {
      WorkingDirectory = "/srv/minecraft";
      User = "minecraft";
      Group = "nogroup";
      Restart = "always";
      ExecStart = "${pkgs.openjdk}/bin/java -Xms10G -Xmx10G -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar --nogui";
      SyslogIdentifier = "minecraft-server";
    };
  };
}