blob: 1926923133416ca125264559c5104109b3825138 (
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
44
45
46
47
48
49
50
51
52
53
54
|
{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;
environment.systemPackages = [ pkgs.mcrcon ];
networking.firewall.allowedTCPPorts = [ 25565 ];
networking.firewall.allowedUDPPorts = [ 25565 ];
services.minecraft-server = {
enable = true;
package = unstable.minecraft-server;
eula = true;
# openFirewall would also open rcon.port, so open the game port by hand
openFirewall = false;
declarative = true;
whitelist = {
mr_5aturn = "2b811fad-e419-401e-9185-70ab279219b5";
CiderDonuts = "7a992778-71bc-4650-83a1-53069369481b";
};
serverProperties = {
server-port = 25565;
difficulty = "normal";
gamemode = "survival";
max-players = 5;
white-list = true;
enable-rcon = true;
"rcon.port" = 25575;
"rcon.password" = "password";
};
jvmOpts = "-Xms4096M -Xmx4096M";
};
systemd.services.minecraft-server = {
startLimitBurst = 5;
startLimitIntervalSec = 300;
serviceConfig = {
NoNewPrivileges = true;
ProtectSystem = "full";
MemoryMax = "6G";
TasksMax = 512;
RestartSec = "10s";
};
};
}
|