{ 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 ]; }