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