Install Minecraft Server

First, Install OpenJDK

Create a directory to store Minecraft

sudo mkdir /opt
cd /opt
sudo mkdir minecraft

Download Minecraft

cd /opt/minecraft

sudo wget https://launcher.mojang.com/v1/objects/f02f4473dbf152c23d7d484952121db0b36698cb/server.jar -O minecraft_server.1.16.3.jar

if [ -h minecraft_server.jar ]; then
    sudo rm -f minecraft_server.jar
fi

sudo ln -s minecraft_server.1.16.3.jar minecraft_server.jar

Start the server to generate all of the supporting files

cat > /tmp/eula.txt << EOF
eula=true
EOF
 
sudo mv /tmp/eula.txt /opt/minecraft/

cd /opt/minecraft
sudo chmod o+w /opt/minecraft
java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
# After the server startup is "done", stop the server by pressing Ctrl-C
sudo chmod o-w /opt/minecraft

Create a user for Minecraft to run under

sudo useradd minecraft

Make sure that the minecraft user owns all of the files…

sudo chown -R minecraft:minecraft /opt/minecraft

I also like to have plugins on my server so I use Spigot:

cd /tmp
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
 
java -jar BuildTools.jar --rev 1.16.3
java -jar BuildTools.jar --rev 1.16.3 --compile craftbukkit
 
sudo mv craftbukkit-1.16.3.jar spigot-1.16.3.jar /opt/minecraft/
 
cd /opt/minecraft
 
if [ -h spigot.jar ]; then
    sudo rm -f spigot.jar
fi
 
sudo ln -s spigot-1.16.3.jar spigot.jar
 
if [ -h craftbukkit.jar ]; then
    sudo rm -f craftbukkit.jar
fi
 
sudo ln -s craftbukkit-1.16.3.jar craftbukkit.jar 

Plugins

cd /opt/minecraft/plugins
 
#----------------------------------------------------
 
sudo rm worldedit-bukkit-*.jar
sudo wget https://media.forgecdn.net/files/2869/453/worldedit-bukkit-7.1.0.jar
 
sudo rm worldguard-*.jar
sudo wget https://media.forgecdn.net/files/2855/477/worldguard-bukkit-7.0.2.jar
 
sudo rm Multiverse-Core-*.jar
sudo wget https://media.forgecdn.net/files/2768/599/Multiverse-Core-4.1.0.jar
 
sudo rm Multiverse-Portals-*.jar
sudo wget https://media.forgecdn.net/files/2768/601/Multiverse-Portals-4.1.0.jar
 
sudo rm LaggRemover-*.jar
sudo wget https://media.forgecdn.net/files/2744/510/LaggRemover-2.0.6.jar
 
sudo rm AutoSaveWorld.jar
sudo wget https://media.forgecdn.net/files/2365/294/AutoSaveWorld.jar

Configure a startup script

cat > /tmp/minecraft.service << EOF
[Unit]
Description=Minecraft Server
Documentation=

Wants=network.target
After=network.target

[Service]
User=minecraft
Group=minecraft
KillMode=process
SuccessExitStatus=0 1 143

ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
PrivateTmp=true
ReadWriteDirectories=/opt/minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui

[Install]
WantedBy=multi-user.target
EOF

sudo mv /tmp/minecraft.service /etc/systemd/system/
sudo chown root:root /etc/systemd/system/minecraft.service

sudo systemctl enable minecraft.service

Start Minecraft Service

sudo service minecraft start