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