aboutsummaryrefslogtreecommitdiff
path: root/modules/games/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/games/default.nix')
-rw-r--r--modules/games/default.nix35
1 files changed, 32 insertions, 3 deletions
diff --git a/modules/games/default.nix b/modules/games/default.nix
index fee8e34..8befc83 100644
--- a/modules/games/default.nix
+++ b/modules/games/default.nix
@@ -55,6 +55,7 @@
minecraft_mods = {
image = "itzg/minecraft-server";
autoStart = true;
+ extraOptions = [ "--network=host" ];
environment = {
EULA = "true";
TYPE = "FABRIC";
@@ -62,15 +63,43 @@
SEED = "-3691007458655063350";
INIT_MEMORY = "1G";
MAX_MEMORY = "4G";
+
+ OVERRIDE_SERVER_PROPERTIES = "false";
};
- ports = [
- "25566:25565"
- ];
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 ];
}