summary refs log tree commit diff stats
path: root/system/services/minecraft/default.nix
blob: 754c974187580c4ac2da4eeaeb7e41f49d8f2688 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  config,
  pkgs,
  ...
}: {
  users = {
    groups.minecraft = {};
    users.minecraft = {
      isSystemUser = true;
      group = "minecraft";
    };
  };
  systemd.services.minecraft = {
    wantedBy = ["multi-user.target"];
    after = "network.target";
    description = "Minecraft Server";
    serviceConfig = {
      WorkingDirectory = "/srv/minecraft";
      User = "minecraft";
      Group = "minecraft";
      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";
    };
  };
}