====== Games - Minecraft - Create a Minecraft Server ======
**NOTE:** These instructions are for installing a basic vanilla Minecraft server without any add-ons or plugins.
----
===== Install Ubuntu Server =====
Install the Ubuntu OS as usual.
----
===== Update the packages =====
apt update
apt upgrade
----
===== Install Apps =====
apt install tmux wget git most htop
----
===== Install Java =====
apt install openjdk-16-jdk
----
===== Create a User Account =====
adduser minecraft --disabled-login --disabled-password
**NOTE:** It is best to have a separate user account to avoid possible security vulnerabilities on the system.
* Simply press the **Enter** key to skip filling in the usual account information.
* No password is specified for this user.
* The account is only going to be accessible from the root account.
----
===== Switch to the new user =====
su - minecraft
----
===== Create a directory to hold the Minecraft server =====
mkdir ~/server && cd ~/server
----
===== Install the Minecraft server =====
==== Obtain the link for the Minecraft download ====
Visit the official Minecraft site, https://minecraft.net/download/server, and right-click on the **Download** link and copy the Link Location from the context menu.
----
==== Download the Minecraft Java file ====
wget download_link
**NOTE:** **download_link** is the link from the previous step.
----
==== Agree to the End User License Agreement ====
echo "eula=true" > eula.txt
**NOTE:** This creates a file named **eula.txt**.
* This tells the software that the Minecraft End User License Agreement is accepted.
* The terms and conditions can be viewed on the [[https://www.minecraft.net/|Minecraft website]].
----
===== Start the Minecraft Server =====
tmux -s new minecraft
java -jar server.jar
**NOTE:** Tmux is being used to allow detaching of the session.
* Enter **help** for a list of commands.
* To shut down your server, enter the command **stop**.
**NOTE:** Some people suggest the server runs quicker using
java -jar server.jar --nogui
* But this prevents a GUI for typing commands, so only use this option is that is not a concern.
----
===== Enhance the Minecraft Server =====
For add-ons, mods and to personalize the Minecraft experience consult this official documentation: https://help.mojang.com/.
----
===== Connect to the Minecraft Server =====
Download the Minecraft client from the official [[https://www.minecraft.net/|Minecraft website]].
Install and launch the client and sign in.
----
===== Create a Server startup script =====
Create /etc/systemd/system/minecraft.service.
[Unit]
Description=Minecraft server
Documentation=
Wants=network.target
After=network.target
[Service]
WorkingDirectory=/home/minecraft/server
User=minecraft
Group=minecraft
Type=forking
# Run it as a non-root user in a specific directory
ExecStart=/usr/bin/tmux -s new minecraft "java -jar server.jar"
# Send "stop" to the Minecraft server console
ExecStop=/usr/bin/tmux kill-session -t minecraft
# Wait for the PID to die - otherwise it is killed after this command finishes!
ExecStop=/bin/bash -c "while ps -p $MAINPID > /dev/null; do /bin/sleep 1; done"
# Note that absolute paths for all executables are required!
[Install]
WantedBy=multi-user.target
----
===== Run the Startup Script =====
systemctl daemon-reload
systemctl start minecraft
===== References =====
https://www.minecraft.net/en-us/download/server
https://teilgedanken.de/Blog/post/setting-up-a-minecraft-server-using-systemd/
https://minecraft.fandom.com/wiki/Tutorials/Setting_up_a_server
https://minecraft.fandom.com/wiki/Tutorials/Setting_up_a_server#Configuring_the_environment
http://techtips-tom.blogspot.com/2013/01/mineos-turnkey-on-proxmox-vm-server.html