server.nix/games/minecraft/default.nix

60 lines
1.8 KiB
Nix

{ inputs, pkgs, config, ... }: {
imports = [
inputs.nix-minecraft.nixosModules.minecraft-servers
inputs.drasl.nixosModules.drasl
];
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
services = {
caddy.virtualHosts."drasl.catnip.ee".extraConfig = ''
reverse_proxy http://${config.services.drasl.settings.ListenAddress}
'';
minecraft-servers = {
# /srv/minecraft
enable = true;
eula = true;
servers = {
paper-vanilla = {
enable = true;
# When updating minecraft version make sure the plugins will work!
symlinks = import ./paper-vanilla-plugins.nix { inherit pkgs; };
package = pkgs.paperServers.paper-1_21_4;
openFirewall = true;
autoStart = true;
jvmOpts = "-Xmx2G -Xms1G -Dminecraft.api.env=custom -Dminecraft.api.auth.host=${config.services.drasl.settings.BaseURL}/auth -Dminecraft.api.account.host=${config.services.drasl.settings.BaseURL}/account -Dminecraft.api.session.host=${config.services.drasl.settings.BaseURL}/session -Dminecraft.api.services.host=${config.services.drasl.settings.BaseURL}/services";
serverProperties = {
motd = "catnip enthutiasts";
spawn-protection = 0;
max-players = 69;
};
};
};
};
drasl = {
enable = true;
settings = {
Domain = "drasl.catnip.ee";
BaseURL = "https://drasl.catnip.ee";
ListenAddress = "0.0.0.0:4017";
DefaultAdmins = [ "kaya" ];
CreateNewPlayer.AllowChoosingUUID = true;
RegistrationNewPlayer = {
Allow = true;
RequireInvite = true;
};
};
};
borgbackup.jobs."borgbase".paths = [
"/var/lib/private/drasl"
"/srv/minecraft"
];
};
}