Minecraft Server: Difference between revisions
m Mention this page is only for the Minecraft Java Edition |
|||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{disambiguation|message=Not to be confused with the [[Minecraft]] client.}} | |||
{{tip/unfree}} | |||
[https://minecraft.wiki/w/Server Minecraft Server] is a server for the blocky sandbox game [[Minecraft]]. Currently only servers for the [https://www.minecraft.net/en-us/article/java-or-bedrock-edition Java Edition] of the game are supported. | [https://minecraft.wiki/w/Server Minecraft Server] is a server for the blocky sandbox game [[Minecraft]]. Currently only servers for the [https://www.minecraft.net/en-us/article/java-or-bedrock-edition Java Edition] of the game are supported. | ||
== Setup == | == Setup == | ||
The minimum example to have a Minecraft server running on localhost at the default port of <code>25565</code>. By setting the <code>eula</code> option to <code>true</code>, you are agreeing to the [https://www.minecraft.net/en-us/eula Minecraft EULA] | The minimum example to have a Minecraft server running on localhost at the default port of <code>25565</code>. By setting the <code>eula</code> option to <code>true</code>, you are agreeing to the [https://www.minecraft.net/en-us/eula Minecraft EULA]. | ||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
services.minecraft-server.enable = true; | services.minecraft-server.enable = true; | ||
services.minecraft-server.eula = true; | services.minecraft-server.eula = true; | ||
</nowiki>}} | </nowiki>}} | ||
== 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 36: | Line 37: | ||
allow-cheats = true; | allow-cheats = true; | ||
}; | }; | ||
jvmOpts = "- | jvmOpts = "-Xms2048M -Xmx4096M"; | ||
}; | }; | ||
</nowiki>}} | </nowiki>}} | ||
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 == | |||
=== Use a different server version/package === | |||
To use a specific server version, or another Minecraft server—such as [https://papermc.io/ PaperMC]—change <code>services.minecraft-server.package</code> to a nix package that represents your desired server. | |||
For example: | |||
<code>services.minecraft-server.package = pkgs.minecraftServers.vanilla-1-12;</code> | |||
or | |||
<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 === | === Prefer IPv4 === | ||
To use IPv4 by default, add <code>-Djava.net.preferIPv4Stack=true</code> to <code>jvmOpts</code> | 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]] |