27 lines
1 KiB
Nix
27 lines
1 KiB
Nix
{ config, lib, pkgs, nodes, ... }:
|
|
let
|
|
uberBukkit = pkgs.fetchurl {
|
|
url = "https://github.com/Moresteck/uberbukkit/releases/download/2.0.2-241217-1442-3a5552b/uberbukkit-2.0.2.jar";
|
|
sha256 = "ZttLDpBgeR2SM90kdegwqem1TalBVTndzsxziusCzlA=";
|
|
};
|
|
in {
|
|
services = {
|
|
minecraft-servers.servers.uberbeta = {
|
|
package = pkgs.vanillaServers.vanilla.overrideAttrs (oldAttrs: {
|
|
src = uberBukkit;
|
|
});
|
|
jvmOpts = "-Xmx512M";
|
|
serverProperties = config.services.minecraft-servers.common.serverProperties // {
|
|
difficulty = 3;
|
|
server-port = 30005;
|
|
};
|
|
};
|
|
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.primeDomain}" ];
|
|
};
|
|
|
|
networking.firewall.extraInputRules = let
|
|
targetHosts = lib.attrValues (lib.mapAttrs (_: node: node.config.deployment.targetHost) nodes);
|
|
in lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable ''
|
|
ip6 saddr { ${lib.concatStringsSep ", " targetHosts} } tcp dport 30005 accept
|
|
'';
|
|
}
|