Minecraft adalah salah satu game paling populer sepanjang masa. Ini adalah permainan yang memungkinkan para pemainnya menjelajahi dunia tanpa batas dan membangun segalanya mulai dari rumah sederhana hingga gedung pencakar langit.

Tutorial ini mencakup instalasi dan konfigurasi Server Minecraft di CentOS 7. Kami juga akan membahas cara menggunakan Systemd untuk menjalankan server Minecraft dan utilitas mcrcon untuk menghubungkan ke instance yang berjalan. Kami juga akan menunjukkan kepada Anda cara membuat cronjob yang melakukan backup server reguler.

Prasyarat

Pengguna yang Anda masuki harus memiliki hak sudo untuk dapat menginstal paket.

Instal paket yang diperlukan untuk membangun tool mcrcon:

sudo yum install git
sudo yum group install "Development Tools"

Install Java Runtime Environment

Minecraft membutuhkan Java 8 atau lebih tinggi. Karena Server Minecraft tidak memerlukan antarmuka grafis, kita akan menginstal versi JRE headless. Versi ini lebih cocok untuk aplikasi server karena memiliki lebih sedikit dependensi dan efisiensi dalam penggunaan sumber daya sistem.

Instal paket OpenJRE 8 headless dengan menjalankan:

sudo yum install java-1.8.0-openjdk-headless

Verifikasi pemasangan dengan print versi java:

java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Buat User Minecraft

Untuk tujuan keamanan, Minecraft tidak boleh dijalankan di oleh user root. Kita akan membuat user sistem baru dan grup dengan direktori home /opt/minecraft yang akan menjalankan server Minecraft:

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

Kita tidak akan menetapkan kata sandi untuk user minecraft. Ini adalah praktik keamanan yang baik karena user ini tidak akan dapat masuk melalui SSH. Untuk mengubah ke user minecraft Anda harus masuk ke server sebagai root atau pengguna dengan hak akses sudo.

Install Minecraft di Debian

Sebelum memulai dengan proses instalasi, pastikan Anda beralih ke userminecraft.

sudo su - minecraft

Jalankan perintah berikut untuk membuat tiga direktori baru di dalam direktori home user:

mkdir -p ~/{backups,tools,server}
  • Direktori backups akan menyimpan backup server minecraft nantinya. Anda nanti juga dapat menyinkronkan direktori ini ke server remote backup.
  • Direktori tools akan menyimpan klien mcrcon dan skrip backup.
  • Direktori server akan berisi server game Minecraft dan datanya.

Download dan Compiling mcrcon

RCON adalah protokol yang memungkinkan Anda terhubung ke server Minecraft dan menjalankan perintah. mcron adalah klien RCON yang dibangun dalam Bahasa pemrograman C.

Kita akan mengunduh source code dari GitHub dan membuat binary mcrcon.

Mulailah dengan menavigasi ke direktori ~/tools dan mengkloning repositori Tiiffi/mcrcon dari GitHub menggunakan perintah berikut:

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

Ketika kloning selesai, beralihlah ke direktori repositori:

cd ~/tools/mcrcon

Mulai compile utilitas mcrcon dengan mengetik:

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

Setelah selesai, Anda dapat mengujinya dengan mengetik:

./mcrcon -h

Outputnya akan terlihat seperti ini:

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

Ada beberapa mod server Minecraft seperti Craftbukkit atau Spigot yang memungkinkan Anda untuk menambahkan fitur (plugins) di server dan lebih lanjut menyesuaikan dan mengubah pengaturan server. Dalam panduan ini, kami akan memasang server vanilla resmi Minecraft Mojang terbaru.

File arsip Java (JAR) server Minecraft terbaru adalah variabel untuk diunduh dari halaman unduhan Minecraft.

Pada saat penulisan, versi terbaru adalah 1.14.1. Sebelum melanjutkan dengan langkah selanjutnya, Anda harus memeriksa halaman unduhan untuk versi baru.

Jalankan perintah wget berikut untuk mengunduh file jar Minecraft di direktori ~/server:

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

Konfigurasi Server Minecraft di CentOS

Setelah unduhan selesai, navigasikan ke direktori ~/server dan mulai server Minecraft:

cd ~/serverjava -Xmx1024M -Xms512M -d64 -jar server.jar nogui

Ketika Anda memulai server untuk pertama kalinya dan membuat server.properties dan file eula.txt dan berhenti.

[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.

Seperti yang Anda lihat dari output di atas, kita harus menyetujui EULA Minecraft untuk menjalankan server. Buka file eula.txt dan ubah eula=false menjadi eula=true:

nano ~/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

Tutup dan simpan file.

Selanjutnya, kita perlu mengedit file server.properties untuk mengaktifkan protokol rcon dan mengatur kata sandi rcon. Buka file menggunakan editor teks Anda:r:

nano ~/server/server.properties

Temukan baris berikut dan perbarui nilainya seperti yang ditunjukkan di bawah ini:

rcon.port=25575
rcon.password=ganti-dengan-password
enable-rcon=true

Jangan lupa untuk mengubah ganti-dengan-password menjadi sesuatu yang lebih aman. Jika tidak ingin terhubung ke server Minecraft dari lokasi jarak jauh, pastikan port rcon diblokir oleh firewall Anda.

Membuat Unit File Systemd

Untuk menjalankan Minecraft sebagai service, kita akan membuat file unit Systemd baru.

Beralih kembali ke pengguna sudo Anda dengan mengetikkan exit.

Buka editor teks Anda dan buat file bernama minecraft.service di dalam direktori /etc/systemd/system/:

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

Kemudian Paste konfigurasi berikut:

[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

Ubah flag Xmx dan Xms sesuai dengan sumber daya server Anda. flag Xmx mendefinisikan kumpulan alokasi memori maksimum untuk mesin virtual Java (JVM), sementara Xms mendefinisikan kumpulan alokasi memori awal. Pastikan juga Anda menggunakan port dan kata sandi rcon yang benar.

Simpan dan tutup file dan reload konfigurasi systemd manager:

sudo systemctl daemon-reload

Sekarang Anda dapat memulai server Minecraft dengan menjalankan:

sudo systemctl start minecraft

Pertama kali Anda memulai layanan ini akan menghasilkan beberapa file konfigurasi dan direktori termasuk Minecraft world.

Periksa status layanan dengan perintah berikut:

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 WIB; 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

Terakhir, aktifkan layanan Minecraft secara otomatis dimulai saat boot:

sudo systemctl enable minecraft

Pengaturan Firewall di Minecraft

Jika server dilindungi oleh firewall dan Anda ingin mengakses server Minecraft dari luar jaringan lokal, Anda perlu membuka port 25565.

Untuk mengizinkan lalu lintas di port standar Minecraft 25565 ketik perintah berikut:

sudo ufw allow 25565/tcp

Konfigurasi Backup

Di bagian ini, kami akan membuat skrip shell bckup dan cronjob untuk mencadangkan server Minecraft secara otomatis.

Mulai dengan beralih ke user minecraft:

sudo su - minecraft

Buka editor teks Anda dan buat file berikut:

nano /opt/minecraft/tools/backup.sh

Paste konfigurasi berikut:

#!/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_%R).tar.gz /opt/minecraft/server
rcon "save-on"

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

Simpan file dan buat file tersebut dapat dieksekusi:

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

Selanjutnya, buat cron job yang akan berjalan sekali dalam sehari secara otomatis pada waktu yang tetap.

Buka file crontab dengan mengetik:

crontab -e

Untuk menjalankan skrip backup setiap hari pada pukul 23:00 paste baris berikut:

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

Cara Mengakses Konsol Minecraft

Untuk mengakses Konsol Minecraft, Anda dapat menggunakan utilitas mcrcon. Sintaksnya adalah sebagai berikut, Anda perlu menentukan host, port rcon, kata sandi rcon dan menggunakan switch -t yang memungkinkan mode terminal mcrcon:

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

Saat mengakses Konsol Minecraft dari lokasi yang jauh, pastikan port rcon tidak diblokir.

Kesimpulan

Pada tutorial ini, Anda telah belajar cara menginstal server Minecraft di sistem CentOS 7 dan mengatur backup secara harian.