92 lines
3.2 KiB
Nix
92 lines
3.2 KiB
Nix
{
|
|
pkgs,
|
|
service_configs,
|
|
lib,
|
|
username,
|
|
...
|
|
}:
|
|
let
|
|
heap_size = "2000M";
|
|
in
|
|
{
|
|
nixpkgs.config.allowUnfreePredicate =
|
|
pkg:
|
|
builtins.elem (lib.getName pkg) [
|
|
"minecraft-server"
|
|
];
|
|
|
|
services.minecraft-servers = {
|
|
enable = true;
|
|
eula = true;
|
|
dataDir = service_configs.minecraft.parent_dir;
|
|
openFirewall = true;
|
|
|
|
servers.${service_configs.minecraft.server_name} = {
|
|
enable = true;
|
|
package = pkgs.fabricServers.fabric-1_21_3;
|
|
|
|
jvmOpts = "-Xmx${heap_size} -Xms${heap_size} -XX:+UseZGC -XX:+ZGenerational";
|
|
|
|
serverProperties = {
|
|
server-port = 25565;
|
|
enforce-whitelist = true;
|
|
gamemode = "survival";
|
|
white-list = true;
|
|
difficulty = "easy";
|
|
motd = "A Minecraft Server";
|
|
view-distance = 12;
|
|
};
|
|
|
|
whitelist = import ../secrets/minecraft-whitelist.nix;
|
|
|
|
# provide `infocmp` command for better-fabric-console
|
|
path = [ pkgs.ncurses ];
|
|
|
|
symlinks = {
|
|
"mods" = pkgs.linkFarmFromDrvs "mods" (
|
|
with pkgs;
|
|
builtins.attrValues {
|
|
FabricApi = fetchurl {
|
|
url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/Xhw2LuSh/fabric-api-0.109.0%2B1.21.3.jar";
|
|
sha512 = "decfcbcc4cc9748b9822a5e0b34dada9e1454bbf7c0eb1d4e014db243e8eebaa240a05a48c1bcde232ddecf150692fe295f9bb147794c861e42d2cad66119657";
|
|
};
|
|
|
|
FerriteCore = fetchurl {
|
|
url = "https://cdn.modrinth.com/data/uXXizFIs/versions/a3QXXGz2/ferritecore-7.1.0-hotfix-fabric.jar";
|
|
sha512 = "ae1ab30beb5938643cf2ae7b8220769f2c917e3f5441e46e9bc900295348c0a541a325c30b8dfc38039205620d872c27809acdc6741351f08e4c8edc36ae2bcc";
|
|
};
|
|
|
|
Lithium = fetchurl {
|
|
url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/pZRO3EKX/lithium-fabric-0.14.3%2Bmc1.21.3.jar";
|
|
sha512 = "31ad08427ac50dd54cd2215c29452bd20430ce13f2bd8f4bdb8a6e2f6222b83df47d5727edac721f9397fa296db2998f9aa3eabe2c4c5d45619f8b5b00cd21fc";
|
|
};
|
|
|
|
NoChatReports = fetchurl {
|
|
url = "https://cdn.modrinth.com/data/qQyHxfxd/versions/Cg7X9iDa/NoChatReports-FABRIC-1.21.3-v2.10.1.jar";
|
|
sha512 = "8f1163ad515ebdfab5ef54a4985af05e643749c2efc0bf7b62e00074bbe61d91789b0c9e558bbe1b5c5d21a89b88084ce6350a11a5a9a3bea59eea9764a27171";
|
|
};
|
|
|
|
moonrise = fetchurl {
|
|
url = "https://cdn.modrinth.com/data/KOHu7RCS/versions/LMdPX7nZ/Moonrise-Fabric-0.2.0-beta.5%2Ba6cf977.jar";
|
|
sha512 = "550474a8c2fd94c97d30ec3a03456b343db8467eff0807487d4fb84bb8f3be1b36720c70a86f0b364a448103519315fc6d7752a3df8cabf140f2af4f4a0b5851";
|
|
};
|
|
|
|
squaremap = fetchurl {
|
|
url = "https://jenkins.jpenilla.xyz/job/squaremap/lastSuccessfulBuild/artifact/build/libs/squaremap-fabric-mc1.21.3-1.3.4-SNAPSHOT+4c8b7c6.jar";
|
|
sha256 = "1rf1hy934zvkihm9hy99d17hh9v4lbwsxkzbf3zxj124lzbdmn79";
|
|
};
|
|
}
|
|
);
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d ${service_configs.minecraft.parent_dir}/${service_configs.minecraft.server_name} 0750 minecraft minecraft"
|
|
];
|
|
|
|
users.users.${username}.extraGroups = [
|
|
"minecraft"
|
|
];
|
|
}
|