Aufsetzen eines Minecraft-Servers unter Debian 10
Andosius
Sehr geehrtes einfaches Volk, verehrte Donatoren, zur Knechtschaft gezwungene Moderation und die gesellige Administration,
heute stelle ich euch ein relativ simples Skript vor, mit welchem ihr ganz einfach auf Paper (siehe hier) basierende Server erstellen könnt.
Paper ist ein Fork von Spigot und Bukkit, welches alle Features enthält aber konsequent alle Bugs und Exploits behebt - dadurch am aktuellsten gegenüber seiner Konkurrenten ist.
Das Skript ließt automatisch die aktuellste Version aus und lädt diese auch herunter.
Bei Serverstart wird der Minecraft-Server auch automatisch gestartet. Das Startskript befindet sich dann unter /etc/systemd/system und heißt minecraft@.service
Die Server starten mit 2GB RAM, dies könnt ihr ändern indem ihr das Startskript (gilt für alle laufenden Server!) /etc/systemd/system/minecraft@.service bearbeitet.
Das Autostart-Script (die .service-Datei) wird automatisch heruntergeladen und auf eurem Server eingerichtet. Zum überprüfen (falls ihr das möchtet) findet ihr das Startskript über meinen Github-Account, hier findet ihr den Source-Code! Die Datei wird nicht per Klick automatisch heruntergeladen!
Bei nochmaliger Ausführung des Installationsskriptes wird die Datei nicht überschrieben, es wird vorher überprüft ob diese bereits existiert!
Um das Skript nutzen zu können, müsst ihr dieses einfachheitshalber mit dem Benutzer root ausführen.
Dies birgt immer Risiken, daher übernehme ich keine Haftung für Schäden oder sonstige auflaufende Probleme welche hierdurch entstehen!
Durch die Nutzung des Skripts willigt ihr automatisch der EULA von Mojang ein! Mehr Informationen dazu findet ihr hier: Hier für mehr Informationen klicken!
#!/bin/bash
LC_CTYPE=en_US.utf8
if [ $# -eq 0 ]; then
echo "Bitte gib den Ordnernamen deines Servers an (möglichst alles klein und zusammen geschrieben, alternativ mit Bindestrichen getrennt)!"
echo "Hinweis: ./add-minecraft-server.sh --name <dein-server-name> ODER ./add-minecraft-server.sh -n <dein-server-name>"
echo "Hinweis: Die Pfeile in \"<dein-server-name>\" werden nicht benötigt!"
exit 1
fi
if [[ $EUID -ne 0 ]]; then
echo "Um dieses Script auszuführen musst du als \"root\" angemeldet sein!"
exit 1
fi
if [ $# -eq 2 ]; then
if [ "$1" = "-n" ] || [ "$1" = "--name" ]; then
DIRECTORY=$2
else
echo "Es wurden ungültige Parameter angegeben!"
exit 1
fi
fi
echo "$DIRECTORY"
wget -O- https://apt.corretto.aws/corretto.key | apt-key add -
add-apt-repository 'deb https://apt.corretto.aws stable main'
apt-get update
apt-get install curl screen software-properties-common java-17-amazon-corretto-jdk python3 -y
adduser --disabled-login --gecos "" minecraft
mkdir -p "/opt/minecraft/instances/$DIRECTORY"
cd "/opt/minecraft/instances/$DIRECTORY"
VERSION=$(curl -s "https://papermc.io/api/v2/projects/paper" | python3 -c "import sys, json; print(json.load(sys.stdin)['versions'][-1])")
BUILD=$(curl -s "https://papermc.io/api/v2/projects/paper/versions/$VERSION/" | python3 -c "import sys, json; print(json.load(sys.stdin)['builds'][-1])")
curl "https://papermc.io/api/v1/paper/$VERSION/$BUILD/download" -o paper.jar
echo "eula=true" > eula.txt
chown -R minecraft:minecraft /opt/minecraft/
if [ ! -e "/etc/systemd/system/minecraft@.service" ]; then
curl 'https://gist.githubusercontent.com/Andosius/f546ee1871c53a456420f054d17f4d7e/raw/f2c658b3ba7c8544522c708436fa1b54d8d1f781/minecraft@.service' -o '/etc/systemd/system/minecraft@.service'
fi
clear
systemctl enable "minecraft@$DIRECTORY"
echo "Tippe folgendes ein, um den Server zu starten: systemctl start minecraft@$DIRECTORY"
echo "WICHTIGER HINWEIS: Du musst gegebenenfalls vor Start des Servers noch den Port ändern."
echo "WICHTIGER HINWEIS: Du kannst den Server jederzeit mit \"systemctl disable minecraft@$DIRECTORY\" deaktivieren und mit \"systemctl enable minecraft@$DIRECTORY\" aktivieren!"
echo "WICHTIGER HINWEIS: Dafür werden root-Privilegien benötigt."
Das Skript braucht vor Nutzung noch exekutive Berechtigungen, welche es mit chmod +x <dateiname> erhält.
#Beim Ausführen der Datei wird euch auch nochmal angezeigt, wie ihr das Skript nutzt.
./add-minecraft-server.sh -n <ordnername-in-/opt/minecraft/instances/>
#oder
./add-minecraft-server.sh --name <ordnername-in-/opt/minecraft/instances/>
#Der angegebene Ordner wird automatisch erstellt und muss vorab nicht erstellt werden! ;)
Nach Erstellung musst du den Server einmalig selbst starten. Dies dient dazu, dass man so noch den Port einstellen kann, falls auf dem Host mehrere Minecraft-Server laufen.
Die Dateien findest du - wie oben beschrieben - in /opt/minecraft/instances/<dein-ordner-name>/
Vielen Dank für das Lesen und viel Vergnügen damit!