summaryrefslogtreecommitdiff
path: root/minecraft.nix
blob: 1969148d9061b39edc8f83d314567786e771144b (plain)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{inputs, lib, pkgs, ...}: let
  allowMinecraft = pkg: builtins.elem (lib.getName pkg) [ "minecraft-server" ];

  unstable = import inputs.nixpkgs-unstable {
    inherit (pkgs.stdenv.hostPlatform) system;
    config.allowUnfreePredicate = allowMinecraft;
  };
in {
  nixpkgs.config.allowUnfreePredicate = allowMinecraft;

  services.minecraft-server = {
    enable = true;
    package = unstable.minecraft-server;
    eula = true;
    openFirewall = true; 
    declarative = true;
    whitelist = {
      mr_5aturn = "2b811fad-e419-401e-9185-70ab279219b5";
    };
    serverProperties = {
      server-port = 25565;
      difficulty = "normal";
      gamemode = "survival";
      max-players = 5;
      white-list = true;
    };
    jvmOpts = "-Xms4096M -Xmx4096M";
  };

  systemd.services.minecraft-server = {
    startLimitBurst = 5;
    startLimitIntervalSec = 300;
    serviceConfig = {
      NoNewPrivileges = true;

      ProtectSystem = "full";

      MemoryMax = "6G";
      TasksMax = 512;
      RestartSec = "10s";
    };
  };
}