104 lines
3.8 KiB
Nix
104 lines
3.8 KiB
Nix
{ config, pkgs, inputs, ... }:
|
|
let serverIcon = ./server-icon.png;
|
|
in {
|
|
environment.systemPackages = with pkgs; [ mcrcon ];
|
|
networking.firewall.allowedTCPPorts = [ 13914 ];
|
|
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
|
|
services.minecraft-servers = {
|
|
enable = true;
|
|
eula = true;
|
|
# dataDir = "/mnt/ssd-01/minecraft";
|
|
# dataDir = "/mnt/Datos/minecraft";
|
|
environmentFile = config.sops.templates."minecraft.env".path;
|
|
managementSystem = {
|
|
tmux.enable = false;
|
|
systemd-socket.enable = true;
|
|
};
|
|
servers.main = {
|
|
enable = true;
|
|
package = pkgs.paperServers.paper-1_21_6;
|
|
enableReload = true;
|
|
autoStart = false;
|
|
jvmOpts =
|
|
"-Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true";
|
|
serverProperties = {
|
|
difficulty = "hard";
|
|
enable-rcon = true;
|
|
enable-query = false;
|
|
enforce-secure-profile = false;
|
|
enforce-whitelist = true;
|
|
hide-online-players = true;
|
|
max-players = 10;
|
|
motd = "NixOS server";
|
|
online-mode = true;
|
|
pvp = true;
|
|
"rcon.password" = "@MINECRAFT_RCON_PASSWORD@";
|
|
server-port = 13914;
|
|
spawn-protection = 0;
|
|
white-list = true;
|
|
};
|
|
symlinks = {
|
|
"server-icon.png" = serverIcon;
|
|
"plugins/EssentialsX.jar" = pkgs.fetchurl {
|
|
url =
|
|
"https://github.com/EssentialsX/Essentials/releases/download/2.21.1/EssentialsX-2.21.1.jar";
|
|
hash = "sha256-Fd1/hxPmE6Hd6tp5LbZgqIyL9pAVvBPxqfnjf21Ez1o=";
|
|
};
|
|
"plugins/EssentialsX-Chat.jar" = pkgs.fetchurl {
|
|
url =
|
|
"https://github.com/EssentialsX/Essentials/releases/download/2.21.1/EssentialsXChat-2.21.1.jar";
|
|
hash = "sha256-M3ThA5j5DI1qTdNw8OvLIprxRCD5q5ya/AfO5jGyU6Y=";
|
|
};
|
|
"plugins/TabTPS.jar" = pkgs.fetchurl {
|
|
url =
|
|
"https://cdn.modrinth.com/data/cUhi3iB2/versions/DlhrDe98/tabtps-spigot-1.3.27.jar";
|
|
hash = "sha256-pWmcNKB0iAlVK4Ki5/vBOv8npOMyrUdxJ/7TbPXlpcI=";
|
|
};
|
|
};
|
|
files = {
|
|
"ops.json".value = [{
|
|
name = "engullejamones";
|
|
uuid = "b65a1bc3-c6a0-4e8c-99b8-3538cfec0cfc";
|
|
level = 4;
|
|
bypassesPlayerLimit = true;
|
|
}];
|
|
"whitelist.json".value = [{
|
|
name = "engullejamones";
|
|
uuid = "b65a1bc3-c6a0-4e8c-99b8-3538cfec0cfc";
|
|
}];
|
|
"plugins/TabTPS/display-configs/default.conf" = pkgs.writeTextFile {
|
|
name = "tabtps-display-config.conf";
|
|
text = ''
|
|
action-bar-settings {
|
|
allow=false
|
|
enable-on-login=false
|
|
}
|
|
boss-bar-settings {
|
|
allow=false
|
|
enable-on-login=false
|
|
}
|
|
permission=""
|
|
tab-settings {
|
|
allow=true
|
|
enable-on-login=true
|
|
footer-modules="ping,tps,mspt,cpu,memory"
|
|
header-modules=""
|
|
separator="<br>"
|
|
theme=default
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
sops = {
|
|
secrets."minecraft_rcon".owner = "minecraft";
|
|
templates."minecraft.env" = {
|
|
content = ''
|
|
MINECRAFT_RCON_PASSWORD=${config.sops.placeholder."minecraft_rcon"}
|
|
'';
|
|
owner = "minecraft";
|
|
};
|
|
};
|
|
users.groups.minecraft.members = [ "avery" ];
|
|
}
|