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/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar -O minecraft_server.1.14.4.jar if [ -h minecraft_server.jar ]; then sudo rm -f minecraft_server.jar fi sudo ln -s minecraft_server.1.14.4.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.13.2 sudo mv craftbukkit-1.13.2.jar spigot-1.13.2.jar /opt/minecraft/ cd /opt/minecraft if [ -h spigot.jar ]; then sudo rm -f spigot.jar fi sudo ln -s spigot-1.13.2.jar spigot.jar if [ -h craftbukkit.jar ]; then sudo rm -f craftbukkit.jar fi sudo ln -s craftbukkit-1.13.2.jar craftbukkit.jar
cat > /tmp/minecraft.conf << EOF # description "start and stop the minecraft-server" chdir /opt/minecraft exec su -s /bin/sh -c 'exec "\$0" "\$@"' minecraft -- \ /usr/bin/java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui > /dev/null start on runlevel [2345] stop on runlevel [^2345] EOF sudo mv /tmp/minecraft.conf /etc/init/ sudo chown root:root /etc/init/minecraft.conf
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
sudo service minecraft start