diff --git a/configs/services/minecraft-server.nix b/configs/services/minecraft-server.nix new file mode 100644 index 0000000..e992c51 --- /dev/null +++ b/configs/services/minecraft-server.nix @@ -0,0 +1,35 @@ +{ lib, pkgs, config, ... }: { + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "minecraft-server" + ]; + + environment.systemPackages = with pkgs; [ + rconc + ]; + + + services.minecraft-server = { + enable = true; + eula = true; + openFirewall = true; # Opens the port the server is running on (by default 25565 but in this case 43000) + declarative = true; + whitelist = { + # This is a mapping from Minecraft usernames to UUIDs. You can use https://mcuuid.net/ to get a Minecraft UUID for a username + Scarpiro = "fbbc57a7-189e-4108-916a-7efeed47b197"; + LadyRaveena = "a1629c6b-48aa-4b42-8cbf-a7930db39ea2"; + }; + serverProperties = { + difficulty = 1; + gamemode = 0; + max-players = 2; + motd = "Minecraft UwU :3"; + white-list = true; + allow-cheats = true; + pvp = false; + enable-rcon = true; + "rcon.password" = "foobar2342"; + "rcon.port" = 25575; + }; + jvmOpts = "-Xms2048M -Xmx2048M"; + }; +} diff --git a/flake.nix b/flake.nix index ab09be0..91d3cda 100644 --- a/flake.nix +++ b/flake.nix @@ -10,16 +10,16 @@ }; }; - testhost = { + mcserver = { deployment = { targetHost = "192.168.178.50"; targetPort = 22; targetUser = "root"; }; - networking.hostName = "testhost"; + networking.hostName = "mcserver"; imports = [ ./configs/container_config.nix - ./configs/services/forgejo.nix + ./configs/services/minecraft-server.nix ]; }; };