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."
Alles anzeigen
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!
Kommentare 11
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Exclusive FiveM Scripts
Du hast mir letztes Jahr im Dezember auf discord versprochen, das noch mehr Blogs in diese Richtung kommen....
Andosius Autor
Ja, war von Dezember an bis Februar mehrfach im KH und muss mich erstmal um die Uni kümmern
Exclusive FiveM Scripts
Oh das wusste ich nicht, sorry
Alles klar
filokdp
Generell sollte man kein Script als root User ausführen, lediglich systembedingte Dinge. Für alles andere erstellt man einen seperaten User.
Andosius Autor
Grüß dich,
grundsätzlich werden damit auch nur systembedingte Dinge durchgeführt.
Die einzige Sache, die man stilistisch eventuell noch umschreiben könnte, wäre das Herunterladen der .jar-Datei + das Akzeptieren der EULA.
Da finde ich aber das Wechseln des Users für vielleicht 5 Sekunden auch nicht wirklich nötig, zumal dabei gar nichts ausgeführt wird - bis auf Python zum parsen von JSON und ein echo-Befehl.
Alles andere kannst du nicht als ein beliebiger Nutzer durchführen, dafür fehlen einem normalen Nutzer die Privilegien. Wäre auch ein Sicherheitsrisiko wenn ein normaler User ein Startskript selbständig anlegen + Ordner von root auf sich umschreiben könnte. O.o
Der Server wird vom User "minecraft" ausgeführt, gestartet und gestoppt.
Zumal sämtlicher Code komplett durchsichtig ist. Der Sinn hinter diesem Hinweis ist mir also nicht wirklich ersichtlich - darauf habe ich bereits vor dem Skript hingewiesen.
LeonMrBonnie
danke für das geile tutorial
mfg
Andosius Autor
Es geht schlussendlich um Minecraft-Plugins und Voraussetzung ist ein Server xd
Außerdem geht es hier um Java und nicht bash ok=?!?!?!!!!!!
mfg thx
LeonMrBonnie
dieses java mach ich doch auch
mfg
Andosius Autor
ya ding
aber dieses schkript
mfg
LeonMrBonnie
was laberst du junge alles das gleiche
mfg
Andosius Autor
ok sori