Minecraft Server: Difference between revisions
Removed flags from example, they were old and broken (causing minecraft-server to fail upon using them); instead recommended user to find their own flags. Also added a tip on changing server version/package |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
== Configuration == | == Configuration == | ||
This example is a more thorough declarative configuration that sets a few options including opening the firewall, restricting the server to only whitelisted users and setting the port to <code>43000</code> | This example is a more thorough declarative configuration that sets a few options including opening the firewall, restricting the server to only whitelisted users and setting the port to <code>43000</code>. | ||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
Line 40: | Line 40: | ||
}; | }; | ||
</nowiki>}} | </nowiki>}} | ||
You might want to | You might want to view the [https://minecraft.wiki/w/Server.properties#Keys list of all available server properties for the vanilla server]. | ||
== Tips and tricks == | == Tips and tricks == | ||
=== Use a different server version/package === | === Use a different server version/package === | ||
Line 59: | Line 55: | ||
<code>services.minecraft-server.package = pkgs.papermc;</code> | <code>services.minecraft-server.package = pkgs.papermc;</code> | ||
=== Accessing the Minecraft server console === | |||
The Minecraft server console allows you to view server logs and issue [https://minecraft.wiki/w/Commands commands] to the server interactively. The Minecraft server console is <strong>not</strong> directly accessible on NixOS—unlike on imperative systems, where running the server through a shell command provides the interactive console to the current terminal session. | |||
==== Accessing logs ==== | |||
Since the Minecraft server runs as a systemd service, you can access its stdout through the systemd journal: | |||
<code>journalctl -eu minecraft-server.service</code> | |||
The logs are also available in the <code>logs</code> subdirectory of the server's data directory, which is configured via <code>services.minecraft-server.dataDir</code>. The default value for this option is <code>/var/lib/minecraft</code>. | |||
==== Issuing commands ==== | |||
There are two ways to issue commands to the Minecraft server: | |||
1. Writing to the server’s stdin via its named pipe at <code>/run/minecraft-server.stdin</code>: | |||
<code>echo "say Removed Herobrine" > /run/minecraft-server.stdin</code> | |||
2. Using the [https://minecraft.wiki/w/RCON server's provided RCON feature]. | |||
Example minimal configuration: | |||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | |||
services.minecraft-server.serverProperties = { | |||
enable-rcon = true; | |||
"rcon.password" = "your password"; | |||
}; | |||
</nowiki>}} | |||
=== Prefer IPv4 === | |||
To use IPv4 by default, add <code>-Djava.net.preferIPv4Stack=true</code> to <code>jvmOpts</code>. | |||
== See also == | |||
* [https://github.com/Infinidoge/nix-minecraft nix-minecraft], a [[flake]] based attempt to better support Minecraft related content for the Nix ecosystem. It can be used for more complex server setups, including mods and plugins. | |||
* [https://docs.papermc.io/paper/aikars-flags/ Aikar's flags] or the [https://github.com/Mukul1127/Minecraft-Java-Flags Minecraft performance flags benchmark] for setting additional JVM options in the <code>jvmOpts</code> option. | |||
[[Category: Applications]] | [[Category: Applications]] | ||
[[Category: Gaming]] | [[Category: Gaming]] |