self-hosting/modules/minecraft-server.nix
Paul-Henri Froidmont 7afc473884
Configure bluemap
2025-12-10 13:17:37 +01:00

91 lines
2.3 KiB
Nix

{
config,
lib,
pkgs,
pkgs-unstable,
...
}:
let
cfg = config.custom.services.minecraft-server;
in
{
options.custom.services.minecraft-server = {
enable = lib.mkEnableOption "minecraft server";
};
config = lib.mkIf cfg.enable {
services.minecraft-server = {
enable = true;
package = pkgs-unstable.minecraft-server;
eula = true;
openFirewall = true;
declarative = true;
serverProperties = {
enable-rcon = true;
"rcon.port" = 25575;
"rcon.password" = "password";
server-port = 23363;
online-mode = true;
force-gamemode = true;
white-list = true;
diffuculty = "hard";
};
whitelist = {
paulplay15 = "1d5abc95-2fdb-4dcb-98e8-4fb5a0fba953";
Xavier1258 = "e9059cf3-00ef-47a3-92ee-4e4a3fea0e6d";
denisjulien3333 = "3c93e1a2-42d8-4a51-9fe3-924c8e8d5b07";
};
};
services.bluemap = {
enable = true;
eula = true;
defaultWorld = "${config.services.minecraft-server.dataDir}/world";
host = "mcmap.${config.networking.domain}";
enableNginx = true;
enableRender = true;
coreSettings = {
render-thread-count = -4;
};
maps = {
"overworld" = {
world = config.services.bluemap.defaultWorld;
ambient-light = 0.1;
cave-detection-ocean-floor = -5;
};
"nether" = {
world = "${config.services.bluemap.defaultWorld}/DIM-1";
sorting = 100;
sky-color = "#290000";
void-color = "#150000";
ambient-light = 0.6;
world-sky-light = 0;
remove-caves-below-y = -10000;
cave-detection-ocean-floor = -5;
cave-detection-uses-block-light = true;
# render-mask = [
# { max-y = 90; }
# ];
};
"end" = {
world = "${config.services.bluemap.defaultWorld}/DIM1";
sorting = 200;
sky-color = "#080010";
void-color = "#080010";
ambient-light = 0.6;
world-sky-light = 0;
remove-caves-below-y = -10000;
cave-detection-ocean-floor = -5;
};
};
};
services.nginx.virtualHosts."mcmap.${config.networking.domain}" = {
forceSSL = true;
enableACME = true;
};
};
}