YouTube Icon

Code Playground.

How to Install Minecraft Server on Debian 9


How to Install Minecraft Server on Debian 9

Minecraft is one of the most well known rounds ever. It is a sandbox computer game about building different structures and going on experiences. 

This instructional exercise discloses how to introduce and arrange Minecraft Server on Debian 9. We'll utilize Systemd to run the Minecraft worker and the mcrcon utility to interface with the running occurrence. We'll additionally tell you the best way to make a cronjob that will perform normal worker reinforcements. 


The client you are signed in as must have sudo advantages . 

Introduce the bundles needed to construct the mcrcon instrument: 

sudo apt update
sudo apt install git build-essential

Installing Java Runtime Environment

Minecraft requires Java 8 to be introduced on the framework. 

We'll introduce the headless adaptation of the JRE. This form is more reasonable for worker applications since it has less conditions and uses less framework assets: 

sudo apt install openjdk-8-jre-headless

Confirm the establishment by running: 

java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode)

Creating Minecraft User

The following stage is to make another framework client and gathering with home index/select/minecraft that will run the Minecraft worker. To do so run the accompanying order: 

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

The client will have no secret phrase. This is acceptable security practice since this client won't have the option to login by means of SSH. 

Installing Minecraft on Debian

Prior to beginning with the establishment cycle, do sure you change to minecraft client. 

sudo su - minecraft

Make three new catalogs inside the client home registry: 

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

The reinforcements catalog will store your worker reinforcement. You can later synchronize this catalog to your far off reinforcement worker. 

The instruments index will store the mcrcon customer and the reinforcement content. 

The worker catalog will contain the real Minecraft worker and its information. 

Downloading and Compiling mcrcon

RCON is a convention that permits you to interface with the Minecraft workers and execute orders. mcron is RCON customer implicit C. 

We'll download the source code from GitHub and manufacture the mcrcon twofold. 

Start by exploring to the ~/instruments index and clone the Tiiffi/mcrcon storehouse from GitHub utilizing the accompanying order: 

cd ~/tools && git clone

Change to the store catalog: 

cd ~/tools/mcrcon

Start the gathering of the mcrcon utility by running: 

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

When finished, you can test it by composing: 

./mcrcon -h

The yield will look something like this: 

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

  -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:

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

	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

Downloading Minecraft Server 

There are a few Minecraft worker mods like Craftbukkit or Spigot that permits you to add highlights (modules) on your worker and further alter and change the worker settings. In this instructional exercise, we will introduce the most recent Mojang's legitimate vanilla Minecraft worker. 

The most recent Minecraft worker's Java file document (JAR) is accessible for download from the Minecraft download page . 

At the hour of composing, the most recent rendition is 1.14.1. Prior to proceeding with the following stage you should check the download page for another variant. 

Run the accompanying wget order to download the Minecraft container record in the ~/worker catalog: 

wget -P ~/server

Configuring Minecraft Server

Once the download is finished, explore to the ~/worker catalog and start the Minecraft worker: 

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

At the point when the worker is begun unexpectedly it executes a few activities and makes the and eula.txt documents and stops. 

[23:41:44] [main/ERROR]: Failed to load properties from file:
[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.


As should be obvious from the yield above you'll have to consent to the Minecraft EULA to run the worker. Open the eula.txt document and change eula=false to eula=true: 

nano ~/server/eula.txt


#By changing the setting below to TRUE you are indicating your agreement to our EULA (
#Sun May 19 23:41:45 PDT 2019

Close and spare the record. 

Next, empower the rcon convention and set the rcon secret key by altering the document: 

nano ~/server/

Find the accompanying lines and update their qualities as demonstrated as follows: 



Remember to change the solid secret word to something safer. In the event that you would prefer not to associate with the Minecraft worker from distant areas ensure the rcon port is impeded by your firewall. 

You can likewise change the worker's default properties. For more data about the potential settings visit the page. 

Creating Systemd Unit File

Switch back to your sudo client by composing exit. 

Open your word processor and make a record named minecraft.service in the/and so on/systemd/framework/: 

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

Glue the accompanying arrangement: 


Description=Minecraft Server

SuccessExitStatus=0 1
ExecStart=/usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H -P 25575 -p strong-password stop


Alter the Xmx and Xms banners as per your worker assets. The Xmx banner characterizes the greatest memory allotment pool for a Java virtual machine (JVM), while Xms characterizes the underlying memory assignment pool. Likewise, ensure that you are utilizing the right rcon port and secret word. 

Spare and close the document and advise systemd that we made another unit record: 

sudo systemctl daemon-reload

Start and empower the Minecraft worker by executing: 

sudo systemctl start minecraft
sudo systemctl enable minecraft

The first occasion when you start the administration it will create a few design documents and registries including the Minecraft world. 

Check the administration status with the accompanying order: 

sudo systemctl status 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: 7262 (java)
    Tasks: 19 (limit: 4915)
   CGroup: /system.slice/minecraft.service
           ??7262 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui

Adjusting Firewall

In the event that your worker is secured by a firewall and you need to get to Minecraft worker from an external perspective of your neighborhood network you have to open port 25565. 

To permit traffic on the default Minecraft port 25565 sort the accompanying order: 

sudo ufw allow 25565/tcp

Configuring Backups

In this segment, we'll make a reinforcement shell content and cronjob to naturally reinforcement the Minecraft worker. 

Start by changing to client minecraft: 

sudo su - minecraft

 Open your word processor and make the accompanying document: 

nano /opt/minecraft/tools/

Glue the accompanying arrangement: 



function rcon {
  /opt/minecraft/tools/mcrcon/mcrcon -H -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

Spare the record and make the content executable by giving the accompanying chmod order: 

chmod +x /opt/minecraft/tools/

Next, make a cron work that will run once in a day naturally at a fixed time. 

Open the crontab document by composing: 

crontab -e

To run the reinforcement content each day at 23:00 glue the accompanying line: 

0 23 * * * /opt/minecraft/tools/

Accessing Minecraft Console

To get to the Minecraft Console you can utilize the mcrcon utility. The grammar is as per the following, you have to indicate the host, rcon port, rcon secret word and utilize the - t switch which empowers the mcrcon terminal mode: 

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

To get to the Minecraft Console from a distant area ensure the rcon port isn't hindered. 

In the event that you are routinely associating with the Minecraft support, rather than composing this long order you can make a slam assumed name . 


You have effectively introduced Minecraft worker on your Debian 9 framework and set up a day by day reinforcement. 

On the off chance that you hit an issue or have