 
 Minecraft je jednou z nejpopulárnějších her všech dob. Je to sandboxová videohra, kde hráči prozkoumávají nekonečné světy a staví různé stavby od jednoduchých domů až po tyčící se mrakodrapy.
 Tento tutoriál vysvětluje, jak vytvořit server Minecraft na Ubuntu 20.04. Ke spuštění serveru Minecraft a mcrcon použijeme Systemd nástroj pro připojení k běžící instanci. Také vám ukážeme, jak vytvořit cronjob, který provádí pravidelné zálohování serveru.
Předpoklady #
Podle oficiálních stránek Minecraftu se jako minimální konfigurace pro typické nastavení doporučuje 4GB RAM.
 Nainstalujte balíčky potřebné k sestavení mcrcon nástroj:
sudo apt updatesudo apt install git build-essential
Instalace Java Runtime Environment #
Minecraft vyžaduje Java 8 nebo vyšší. Minecraft Server nepotřebuje grafické uživatelské rozhraní, takže nainstalujeme bezhlavou verzi Javy. Tato verze je vhodnější pro serverové aplikace, protože má méně závislostí a využívá méně systémových prostředků.
Spuštěním následujícího příkazu nainstalujte balíček OpenJRE 11 bez hlavy:
sudo apt install openjdk-11-jre-headlessOvěřte instalaci vytištěním verze Java:
java -versionopenjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Vytváření uživatele Minecraftu #
 Z bezpečnostních důvodů by Minecraft neměl být spuštěn pod uživatelem root. Vytvoříme nový systémový uživatel a skupinu s domovským adresářem /opt/minecraft . Uživatel bude mít minimální potřebná oprávnění ke spuštění serveru Minecraft:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
 Tomuto uživateli nenastavíme heslo. Tímto způsobem se uživatel nebude moci přihlásit přes SSH a nemůže být ohrožen. Chcete-li přejít na minecraft uživatel, budete se muset přihlásit k serveru jako root nebo uživatel s právy sudo.
Instalace Minecraftu na Ubuntu #
 Před zahájením procesu instalace přepněte na minecraft uživatel:
sudo su - minecraftSpusťte následující příkaz k vytvoření tří nových adresářů v domovském adresáři uživatele:
mkdir -p ~/{backups,tools,server}- backupsadresář bude ukládat zálohy vašeho serveru Minecraft. Tento adresář můžete synchronizovat se vzdáleným záložním serverem.
- toolsadresář bude obsahovat- mcrconklient a zálohovací skript.
- serveradresář bude obsahovat skutečný Minecraft server a jeho data.
Stahování a kompilace mcrcon #
 RCON je protokol, který vám umožňuje připojit se k serverům Minecraft a provádět příkazy. Klient mcronis RCON napsaný v C.
 Stáhneme si zdrojový kód z GitHubu a vytvoříme mcrcon binární.
 Naklonujte Tiiffi/mcrcon úložiště z GitHubu do ~/tools/mcron adresář:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
 Po dokončení přepněte na mcron adresář a sestavte nástroj:
cd ~/tools/mcrcongcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
 Po dokončení ověřte, že mcrcon byl úspěšně zkompilován vytištěním jeho verze:
./mcrcon -vVýstup bude vypadat nějak takto:
mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - https://github.com/Tiiffi/mcrcon
Bug reports:
	tiiffi+mcrcon at gmail
	https://github.com/Tiiffi/mcrcon/issues/
Stahování serveru Minecraft #
Existuje několik modulů serveru Minecraft, jako je Craftbukkitor Spigot, které vám umožňují přidávat funkce (pluginy) na váš server a dále upravovat a vylepšovat nastavení serveru.
V této příručce nainstalujeme nejnovější oficiální vanilkový Minecraft server Mojang. Stejné pokyny platí pro instalaci dalších serverových modů.
 Přejděte na stránku pro stahování Minecraftu a získejte odkaz ke stažení nejnovějšího archivního souboru Java serveru Minecraft (JAR). V době psaní tohoto článku je nejnovější verze 1.16 .
 Stáhněte si soubor jar v ~/server adresář s wget :
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/serverKonfigurace serveru Minecraft #
 Po dokončení stahování přepněte na ~/server adresář a spusťte server Minecraft:
cd ~/serverjava -Xmx1024M -Xms1024M -jar server.jar nogui
 Při prvním spuštění server provede některé operace, vytvoří server.properties a eula.txt soubory a zastávky.
[17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
[17:35:15] [main/WARN]: Failed to load eula.txt
[17:35:15] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
 Chcete-li spustit server, musíte souhlasit s Minecraft EULA, jak je uvedeno ve výstupu výše. Otevřete eula.txt soubor a změňte eula=false na eula=true :
nano ~/server/eula.txteula=true
Zavřete a uložte soubor.
 Dále otevřete server.properties a povolte protokol rcon a nastavte heslo rcon:
nano ~/server/server.propertiesVyhledejte následující řádky a aktualizujte jejich hodnoty, jak je znázorněno níže:
~/server/server.propertiesrcon.port=25575
rcon.password=strong-password
enable-rcon=true
strong-password na něco bezpečnějšího. Pokud se nechcete k serveru Minecraft připojovat ze vzdálených míst, ujistěte se, že port rcon je blokován vaším firewallem. Zde můžete také upravit výchozí vlastnosti serveru. Další informace o nastavení serveru naleznete na stránce server.properties.
Vytváření souboru systémové jednotky #
Místo ručního spouštění serveru Minecraft vytvoříme soubor jednotky Systemd a spustíme Minecraft jako službu.
 Přepněte zpět na uživatele sudo zadáním exit .
 Otevřete textový editor a vytvořte soubor s názvem minecraft.service v /etc/systemd/system/ adresář:
sudo nano /etc/systemd/system/minecraft.serviceVložte následující konfiguraci:
/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 -Xms1024M -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
 Upravte Xmx a Xms příznaky podle zdrojů vašeho serveru. Xmx příznak definuje maximální fond přidělení paměti pro virtuální stroj Java (JVM), zatímco Xms definuje počáteční fond alokace paměti. Také se ujistěte, že používáte správný rcon port a heslo.
Uložte soubor a znovu načtěte konfiguraci správce systému:
sudo systemctl daemon-reloadNyní můžete spustit server Minecraft zadáním:
sudo systemctl start minecraftPři prvním spuštění služba vygeneruje několik konfiguračních souborů a adresářů, včetně světa Minecraftu.
Zkontrolujte stav služby pomocí následujícího příkazu:
sudo systemctl status minecraft● minecraft.service - Minecraft Server
     Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-06-23 17:48:44 UTC; 8s ago
   Main PID: 1338035 (java)
      Tasks: 15 (limit: 1074)
     Memory: 465.3M
     CGroup: /system.slice/minecraft.service
             └─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
Nakonec povolte automatické spuštění služby Minecraft při spouštění:
sudo systemctl enable minecraftÚprava brány firewall #
 Ubuntu se dodává s konfiguračním nástrojem brány firewall s názvem UFW. Pokud je ve vašem systému povolena brána firewall a chcete mít přístup k serveru Minecraft zvenčí místní sítě, musíte otevřít port 25565 :
sudo ufw allow 25565/tcpKonfigurace záloh #
V této sekci vytvoříme záložní skript shellu a cronjob pro automatické zálohování serveru Minecraft.
 Přepněte na minecraft :
sudo su - minecraftOtevřete textový editor a vytvořte následující soubor:
nano /opt/minecraft/tools/backup.shVložte následující konfiguraci:
/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
Uložte soubor a vytvořte spustitelný skript:
chmod +x /opt/minecraft/tools/backup.shDále vytvořte úlohu cron, která se bude spouštět jednou za den automaticky v pevně stanovený čas.
Otevřete soubor crontab zadáním:
crontab -eChcete-li spouštět zálohovací skript každý den ve 23:00, vložte následující řádek:
0 23 * * * /opt/minecraft/tools/backup.sh
Přístup ke konzole Minecraft #
 Pro přístup do Minecraft Console použijte mcrcon užitečnost. Musíte zadat hostitele, port rcon, heslo rcon a použít -t přepínač, který povolí mcrcon terminálový režim:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -tLogged in. Type "Q" to quit!
> 
Při přístupu ke konzole Minecraft ze vzdáleného umístění se ujistěte, že port rcon není blokován.
Pokud se pravidelně připojujete ke konzoli Minecraft, místo psaní tohoto dlouhého příkazu vytvoříte bash alias.