blob: 883cb22a3c835a4d57f58004f949713eef85e79b (
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
{ config, lib, pkgs, ... }:
{
imports = [ ./acc.nix ];
# ./palworld.nix ./satisfactory.nix
services.factorio = {
enable = true;
package = pkgs.master.factorio-headless;
openFirewall = true;
public = false;
nonBlockingSaving = true;
loadLatestSave = true;
game-name = "cocaine.farm";
bind = "178.63.224.10";
};
services.xonotic = {
enable = true;
openFirewall = true;
settings = {
net_address = "178.63.224.10";
hostname = "cocaine.farm xonotic $g_xonoticversion";
};
};
services.minecraft-server = {
enable = true;
package = pkgs.unstable.papermc;
eula = true;
openFirewall = true;
declarative = true;
whitelist = import ./minecraft_whitelist.nix;
jvmOpts = "-Xmx6144M -Xms6144M";
serverProperties = {
motd = "Fun for the whole family!";
server-ip = "178.63.224.11";
server-port = 25565;
enforce-secure-profile = false;
difficulty = "hard";
enable-rcon = true;
"rcon.password" = builtins.readFile ../../secrets/rcon;
force-gamemode = true;
white-list = true;
level-type = "default";
spawn-protection = 0;
};
};
virtualisation.oci-containers.containers = {
minecraft_mods = {
image = "itzg/minecraft-server";
autoStart = true;
extraOptions = [ "--network=host" ];
environment = {
EULA = "true";
TYPE = "FABRIC";
VERSION = "1.21.8";
SEED = "-3691007458655063350";
INIT_MEMORY = "1G";
MAX_MEMORY = "4G";
OVERRIDE_SERVER_PROPERTIES = "false";
};
volumes = [
"/var/lib/minecraft_mods:/data"
];
};
};
systemd.services.prometheus-minecraft-exporter =
let exporter = pkgs.callPackage ../../pkgs/prometheus-minecraft-exporter {};
in {
description = "minecraft prometheus exporter";
enable = true;
wantedBy = [ "multi-user.target" ];
after = [ "network.target" "podman-minecraft_mods.service" ];
serviceConfig = {
ExecStart = (lib.concatStringsSep " " ([
"${exporter}/bin/minecraft-exporter"
"--web.listen-address=:9150"
"--mc.world=/var/lib/minecraft_mods/world"
"--mc.name-source=mojang"
"--mc.mod-server-stats=fabric"
"--web.disable-exporter-metrics"
]));
EnvironmentFile = "/etc/secrets/minecraft_rcon.env";
};
};
secrets = {
minecraft = {
source = ../../secrets/minecraft_rcon.env;
dest = "/etc/secrets/minecraft_rcon.env";
};
};
networking.firewall.allowedTCPPorts = [ 25566 ];
}
|