nixfiles/hosts/nullbox/mcserver.nix

96 lines
2.9 KiB
Nix

{ pkgs, lib, config, ... }:
let
cfg = config.services.minecraft-servers;
in
{
config = {
fileSystems = {
"/srv/mcserver".options = [ "compress=zstd" "nofail" ];
"/srv/mcserver/.snapshots".options = [ "compress=zstd" "nofail" ];
};
networking.firewall.trustedInterfaces = [ "wg0" ];
users = {
users = {
nullbite.extraGroups = [ "minecraft" ];
};
};
services.snapper = {
configs.mcserver = {
FSTYPE = "btrfs";
SUBVOLUME = "/srv/mcserver";
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_MIN_AGE = "1800";
TIMELINE_LIMIT_HOURLY = "36";
TIMELINE_LIMIT_DAILY = "14";
TIMELINE_LIMIT_WEEKLY = "4";
TIMELINE_LIMIT_MONTHLY = "12";
TIMELINE_LIMIT_YEARLY = "10000";
};
};
services.minecraft-servers = {
enable = true;
eula = true;
dataDir = "/srv/mcserver";
servers = let
notlite-modpack = let
commit = "9e96ad3";
in pkgs.fetchPackwizModpack {
url = "https://gitea.protogen.io/nullbite/notlite/raw/commit/${commit}/pack.toml";
packHash = "sha256-N3Pdlqte8OYz6wz3O/TSG75FMAV+XWAipqoXsYbcYDQ=";
};
# hack to make quilt work. requires manual installation.
# workaround for nix-minecraft#60
shimPackage = pkgs.writeShellScriptBin "minecraft-server" ''
exec ${pkgs.jre_headless}/bin/java $@ -jar ./quilt-server-launch.jar nogui
'';
in {
notlite = {
useRecommendedDefaults = true;
enable = true;
autoStart = true;
modpack = notlite-modpack;
modpackSymlinks = [ "mods" ];
modpackFiles = [ "config/" "kubejs/" ];
serverProperties = {
motd = "owo what's this (nix notlite edition)";
server-port = 25567;
"query.port" = 25567;
# more declarative
level-seed = "8555431723250870652";
level-type = "bclib:normal";
};
};
minecraft-nixtest = let
self = cfg.servers.minecraft-nixtest;
package = pkgs.quiltServers.quilt-1_20_1.override { loaderVersion = "0.21.0"; };
in {
useRecommendedDefaults = true;
enable = false;
modpack = notlite-modpack;
# package = shimPackage;
autoStart = self.enable;
whitelist = {
YzumThreeEye = "3dad78e8-6979-404f-820e-952ce20964a0";
NullBite = "e24e8e0e-7540-4126-b737-90043155bcd4";
Silveere = "468554f1-27cd-4ea1-9308-3dd14a9b1a12";
};
modpackSymlinks = [ "mods" ];
modpackFiles = [ "config/" "kubejs/" ];
serverProperties = rec {
motd = "owo what's this (nix edition)";
server-port = 25568;
"query.port" = server-port;
};
};
};
};
};
}