YouTube Icon

Code Playground.

How to Install Minecraft Server on Ubuntu 18.04

CFG

How to Install Minecraft Server on Ubuntu 18.04

Minecraft is one of the most popular games of all time. It is a sandbox online game, which permits its gamers to explore infinite worlds and build the whole lot from simple homes to large skyscrapers.

This tutorial covers the installation and configuration of the Minecraft Server on Ubuntu 18.04. We’ll use Systemd to run the Minecraft server and the mcrcon utility for connecting to the jogging instance. We’ll additionally show you the way to create a cronjob that performs normal server backups.

The identical commands apply for Ubuntu 16.04 and any Ubuntu-primarily based distribution, which include Linux Mint and Elementary OS.

Prerequisites 
The person you are logged in as must have sudo privileges so that you can install packages.

Install the applications required to construct the mcrcon device:

sudo apt update
sudo apt install git build-essential

Installing Java Runtime Environment
Minecraft requires Java eight or greater. Because the Minecraft Server doesn’t need a graphical user interface, we’ll install the headless model of the JRE. This model is more appropriate for server programs since it has fewer dependencies and uses less system resources.

Install the headless OpenJRE 8 package by means of jogging:

sudo apt install openjdk-8-jre-headless


Verify the set up by means of printing the Java version :

java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)


Creating Minecraft User
For safety functions, Minecraft have to not be run below the root person. We will create a new device consumer and group with home directory /decide/minecraft with the intention to run the Minecraft server:

sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft


We are not going to set a password for this person. This is right protection practice because this person will no longer be able to login through SSH. To alternate to the minecraft consumer you’ll want to be logged in to the server as root or consumer with sudo privileges.

Installing Minecraft on Ubuntu 
Before beginning with the set up manner, make certain you turn to minecraft consumer.

sudo su - minecraft


Run the subsequent command to create three new directories inside the user home directory:

mkdir -p ~/{backups,tools,server}


The backups listing will keep your server backup. You can later synchronize this listing in your remote backup server.
The equipment listing will save the mcrcon customer and the backup script.
The server directory will contain the real Minecraft server and its statistics.


Downloading and Compiling mcrcon
RCON is a protocol that lets in you to connect with the Minecraft servers and execute commands. Mcron is RCON consumer constructed in C.

We’ll download the supply code from GitHub and build the mcrcon binary.

Start through navigating to the ~/equipment directory and clone the Tiiffi/mcrcon repository from GitHub the use of the subsequent command:


When the cloning is finished, switch to the repository directory:

cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
cd ~/tools/mcrcon


Start the compilation of the mcrcon utility by using typing:

gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c


Once finished, you may test it via typing:

./mcrcon -h


The output will appearance something like this:

Usage: mcrcon [OPTIONS]... [COMMANDS]...
Sends rcon commands to Minecraft server.

Option:
  -h		Print usage
  -H		Server address
  -P		Port (default is 25575)
  -p		Rcon password
  -t		Interactive terminal mode
  -s		Silent mode (do not print received packets)
  -c		Disable colors
  -r		Output raw packets (debugging and custom handling)
  -v		Output version information

Server address, port and password can be set using following environment variables:
  MCRCON_HOST
  MCRCON_PORT
  MCRCON_PASS

Command-line options will override environment variables.
Rcon commands with arguments must be enclosed in quotes.

Example:
	mcrcon -H my.minecraft.server -p password "say Server is restarting!" save-all stop

mcrcon 0.6.1 (built: May 19 2019 23:39:16)
Report bugs to tiiffi_at_gmail_dot_com or https://github.com/Tiiffi/mcrcon/issues/


Downloading Minecraft Server
There are several Minecraft server mods inclusive of Craftbukkit or Spigot that lets in you to feature capabilities (plugins) in your server and similarly customize and tweak the server settings. In this guide, we are able to deploy the contemporary Mojang’s legitimate vanilla Minecraft server.

The cutting-edge Minecraft server’s Java archive document (JAR) is to be had for down load from the Minecraft download page .
At the time of writing, the state-of-the-art version is 1.14.1. Before continuing with the next step you must check the down load web page for a new edition.
Run the subsequent wget command to down load the Minecraft jar record in the ~/server directory:

wget https://launcher.mojang.com/v1/objects/ed76d597a44c5266be2a7fcd77a8270f1f0bc118/server.jar -P ~/server

Configuring Minecraft Server
Once the down load is completed, navigate to the ~/server listing and begin the Minecraft server:

cd ~/server
java -Xmx1024M -Xms512M -jar server.jar nogui


When you begin the server for the first time it executes a few operations and creates the server.Homes and eula.Txt documents and forestalls.

[23:41:44] [main/ERROR]: Failed to load properties from file: server.properties
[23:41:45] [main/WARN]: Failed to load eula.txt
[23:41:45] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
nano ~/server/eula.txt

~/server/eula.txt

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun May 19 23:41:45 PDT 2019
eula=true

Close and keep the report.

Next, we need to edit the server.Houses record to enable the rcon protocol and set the rcon password. Open the document the use of your textual content editor:

nano ~/server/server.properties


Locate the following strains and replace their values as shown under:

~/server/server.properties

rcon.port=25575
rcon.password=strong-password
enable-rcon=true


Do no longer overlook to trade the sturdy-password to something greater comfy. If you don’t want to connect to the Minecraft server from far off locations ensure the rcon port is blocked via your firewall.
While right here, you could additionally alter the server’s default residences. For greater information about the viable settings go to the server.Residences web page.

Creating Systemd Unit File

To run Minecraft as a provider we are able to create a new Systemd unit file.
Switch back on your sudo user by way of typing go out.

Open your text editor and create a file named minecraft.Service in /and many others/systemd/gadget/:

sudo nano /etc/systemd/system/minecraft.service


Paste the following configuration:

/etc/systemd/system/minecraft.service

[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop

[Install]
WantedBy=multi-user.target

Modify the Xmx and Xms flags in keeping with your server resources. The Xmx flag defines the maximum reminiscence allocation pool for a Java virtual device (JVM), while Xms defines the preliminary memory allocation pool. Also, make sure which you are the usage of the appropriate rcon port and password.

Save and near the record and reload the systemd manager configuration:

sudo systemctl daemon-reload


Now you could begin the Minecraft server via executing:

sudo systemctl start minecraft

The first time you start the provider it's going to generate numerous configuration files and directories along with the Minecraft international.

Check the carrier repute with the subsequent command:

sudo systemctl reputation minecraft

* minecraft.service - Minecraft Server
   Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-05-19 23:49:18 PDT; 9min ago
 Main PID: 11262 (java)
    Tasks: 19 (limit: 2319)
   CGroup: /system.slice/minecraft.service
           `-11262 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui


Finally, permit the Minecraft carrier to be routinely started out at boot time:

sudo systemctl enable minecraft


Adjusting Firewall
If your server is included with the aid of a firewall and also you need to get admission to Minecraft server from the out of doors of your local community you need to open port 25565.

To permit traffic at the default Minecraft port 25565 type the subsequent command:

sudo ufw allow 25565/tcp


Configuring Backups
In this section, we’ll create a backup shell script and cronjob to robotically backup the Minecraft server.

nano /opt/minecraft/tools/backup.sh

Start by way of switching to person minecraft:

sudo su - minecraft

/opt/minecraft/tools/backup.sh

#!/bin/bash

function rcon {
  /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}

rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"

## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete

Save the record and make the script executable through jogging the following chmod command:

chmod +x /opt/minecraft/tools/backup.sh


Next, create a cron task a good way to run as soon as in a day routinely at a set time.

Open the crontab report through typing:

crontab -e


To run the backup script every day at 23:00 paste the following line:

0 23 * * * /opt/minecraft/tools/backup.sh


Accessing Minecraft Console
To access the Minecraft Console you can use the mcrcon application. The syntax is as follows, you need to specify the host, rcon port, rcon password and use the -t transfer which allows the mcrcon terminal mode:

/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
> 


When gaining access to the Minecraft Console from a far flung vicinity ensure the rcon port is not blocked.

If you're frequently connecting to the Minecraft console, rather than typing this long command you ought to create a bash alias .

Conclusion
You have correctly set up Minecraft server to your Ubuntu 18.04 machine and installation a day by day backup.

If you hit a hassle or have feedback, depart a remark beneath.




CFG