nixpkgs/nixos/tests/minecraft-server.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

47 lines
1.1 KiB
Nix
Raw Permalink Normal View History

2020-11-28 12:42:46 -05:00
let
seed = "2151901553968352745";
rcon-pass = "foobar";
rcon-port = 43000;
in
2025-05-28 11:47:24 +08:00
{ lib, pkgs, ... }:
{
name = "minecraft-server";
2025-05-28 11:47:24 +08:00
meta.maintainers = with lib.maintainers; [ nequissimus ];
node.pkgsReadOnly = false;
2020-11-28 12:42:46 -05:00
nodes.server =
{ ... }:
{
environment.systemPackages = [ pkgs.mcrcon ];
2020-11-28 12:42:46 -05:00
nixpkgs.config.allowUnfree = true;
2020-11-28 12:42:46 -05:00
services.minecraft-server = {
declarative = true;
enable = true;
eula = true;
serverProperties = {
enable-rcon = true;
level-seed = seed;
level-type = "flat";
generate-structures = false;
online-mode = false;
"rcon.password" = rcon-pass;
"rcon.port" = rcon-port;
2020-11-28 12:42:46 -05:00
};
};
virtualisation.memorySize = 2047;
};
testScript = ''
server.wait_for_unit("minecraft-server")
server.wait_for_open_port(${toString rcon-port})
assert "${seed}" in server.succeed(
"mcrcon -H localhost -P ${toString rcon-port} -p '${rcon-pass}' -c 'seed'"
)
server.succeed("systemctl stop minecraft-server")
'';
}