Configure Minecraft server options

The server configuration is currently disabled due to
Infinidoge/nix-minecraft#60
This commit is contained in:
NullBite 2024-03-24 10:38:31 -04:00
parent 57748c08f3
commit 25c595f32e
Signed by: nullbite
GPG Key ID: 6C4D545385D4925A
2 changed files with 78 additions and 1 deletions

View File

@ -47,6 +47,12 @@
options = [ "subvol=@mcserver" ];
};
fileSystems."/srv/mcserver/.snapshots" =
{ device = "/dev/disk/by-uuid/7204ff85-6404-4bd7-ba0d-3fb23a5cf52c";
fsType = "btrfs";
options = [ "subvol=snapshots/@mcserver" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@ -1,7 +1,78 @@
{ pkgs, lib, config, ... }:
let
cfg = config.services.minecraft-servers;
in
{
config = {
fileSystems."/srv/mcserver".options = [ "compress=zstd" "nofail" ];
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 = {
minecraft-nixtest = let
self = cfg.servers.minecraft-nixtest;
package = pkgs.quiltServers.quilt-1_20_1.override { loaderVersion = "0.21.0"; };
modpack = pkgs.fetchPackwizModpack {
url = "https://gitea.protogen.io/nullbite/notlite/raw/branch/release/1.20.1/pack.toml";
packHash = "sha256-N3Pdlqte8OYz6wz3O/TSG75FMAV+XWAipqoXsYbcYDQ=";
};
in {
enable = false;
inherit package;
autoStart = self.enable;
whitelist = {
YzumThreeEye = "3dad78e8-6979-404f-820e-952ce20964a0";
NullBite = "e24e8e0e-7540-4126-b737-90043155bcd4";
Silveere = "468554f1-27cd-4ea1-9308-3dd14a9b1a12";
};
symlinks = let
symlinkFolders = lib.genAttrs [ "mods" "kubejs" ] (x: "${modpack}/${x}");
in symlinkFolders;
serverProperties = {
# allow NCR
enforce-secure-profile = false;
white-list = true;
enforce-whitelist = true;
motd = "owo what's this (nix edition)";
enable-rcon = false;
difficulty = "hard";
hardcore = false;
online-mode = true;
pvp = true;
sync-chunk-writes = false;
};
};
};
};
};
}