Minecraft Bedrock Server
Hinweise<br> -Standardmäßig startet der Server mit 2 GB RAM (-Xmx2G -Xms1G), anpassbar im Service-File.<br> Autostart ist über systemd eingerichtet.<br> Unterstützt aktuell Debian/Ubuntu & CentOS/RHEL/Fedora (andere müssten ergänzt werden).<br> Serverdateien liegen in /opt/minecraft-bedrock.<br> Automatisches Update läuft täglich um 04:00 Uhr per Cronjob.<br>
Linux
SH
Other
v1.0.0
Script Code
#!/bin/bash
# Minecraft Bedrock Server Installer + Auto-Updater (Linux, Autostart, Latest Version)
set -e
# === Root check ===
if [[ "$EUID" -ne 0 ]]; then
echo "Bitte als root oder mit sudo starten!"
exit 1
fi
# === OS Prüfung ===
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
else
echo "Unbekanntes OS – Abbruch."
exit 1
fi
echo "Erkanntes OS: $PRETTY_NAME"
# === Abhängigkeiten installieren ===
case "$OS" in
ubuntu|debian)
apt update && apt install -y unzip curl screen libcurl4 cron
;;
fedora)
dnf install -y unzip curl screen libcurl cronie
systemctl enable crond --now
;;
centos|rhel)
yum install -y unzip curl screen libcurl cronie
systemctl enable crond --now
;;
*)
echo "Dein OS wird nicht unterstützt. Bitte Ubuntu/Debian/Fedora/CentOS verwenden."
exit 1
;;
esac
# === Benutzer + Pfade ===
MCUSER="minecraft"
MCPATH="/opt/minecraft-bedrock"
UPDATER="$MCPATH/update-bedrock.sh"
if ! id -u $MCUSER >/dev/null 2>&1; then
useradd -m -r -d $MCPATH -s /bin/bash $MCUSER
fi
mkdir -p $MCPATH
chown -R $MCUSER:$MCUSER $MCPATH
# === Funktion: Bedrock herunterladen ===
install_bedrock() {
echo "Lade neuste Minecraft Bedrock Server Version herunter..."
LATEST_URL=$(curl -s https://www.minecraft.net/en-us/download/server/bedrock | grep -oP 'https://minecraft.azureedge.net/bin-linux/bedrock-server-.*zip' | head -n 1)
if [ -z "$LATEST_URL" ]; then
echo "Konnte die Download-URL nicht ermitteln!"
exit 1
fi
cd $MCPATH
curl -L -o bedrock-server.zip "$LATEST_URL"
sudo -u $MCUSER unzip -o bedrock-server.zip
rm bedrock-server.zip
}
# === Erste Installation ===
install_bedrock
# === systemd Service einrichten ===
SERVICE_FILE="/etc/systemd/system/minecraft-bedrock.service"
cat > $SERVICE_FILE <<EOF
[Unit]
Description=Minecraft Bedrock Server
After=network.target
[Service]
WorkingDirectory=$MCPATH
User=$MCUSER
Group=$MCUSER
Restart=always
ExecStart=$MCPATH/bedrock_server
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reexec
systemctl enable minecraft-bedrock.service
systemctl start minecraft-bedrock.service
# === Update-Skript erstellen ===
cat > $UPDATER <<'EOF'
#!/bin/bash
set -e
MCUSER="minecraft"
MCPATH="/opt/minecraft-bedrock"
LATEST_URL=$(curl -s https://www.minecraft.net/en-us/download/server/bedrock | grep -oP 'https://minecraft.azureedge.net/bin-linux/bedrock-server-.*zip' | head -n 1)
cd $MCPATH
TMPFILE="/tmp/bedrock-server.zip"
curl -L -o "$TMPFILE" "$LATEST_URL"
# Prüfen, ob neue Version
NEW_HASH=$(sha256sum "$TMPFILE" | awk '{print $1}')
if [ -f "$MCPATH/bedrock-server.zip.sha256" ]; then
OLD_HASH=$(cat "$MCPATH/bedrock-server.zip.sha256")
else
OLD_HASH=""
fi
if [ "$NEW_HASH" != "$OLD_HASH" ]; then
echo "Neue Version gefunden – Update wird installiert!"
systemctl stop minecraft-bedrock
unzip -o "$TMPFILE" -d "$MCPATH"
echo "$NEW_HASH" > "$MCPATH/bedrock-server.zip.sha256"
systemctl start minecraft-bedrock
echo "Update erfolgreich abgeschlossen."
else
echo "Minecraft Bedrock ist bereits auf dem neusten Stand."
fi
rm "$TMPFILE"
EOF
chmod +x $UPDATER
chown $MCUSER:$MCUSER $UPDATER
# === Cronjob für Auto-Update ===
(crontab -l 2>/dev/null; echo "0 4 * * * $UPDATER >> /var/log/minecraft-bedrock-update.log 2>&1") | crontab -
echo "======================================="
echo "✅ Minecraft Bedrock Server installiert!"
echo "📂 Pfad: $MCPATH"
echo "▶️ Service starten/stoppen mit:"
echo " systemctl start minecraft-bedrock"
echo " systemctl stop minecraft-bedrock"
echo " systemctl status minecraft-bedrock"
echo "🔄 Auto-Update eingerichtet (täglich 04:00 Uhr)"
echo "📜 Logfile: /var/log/minecraft-bedrock-update.log"
echo "======================================="
Haftungsausschluss: Wir geben unser Bestes, alle Skripte zu überprüfen, können jedoch keine 100%ige Sicherheit garantieren. Die Nutzung erfolgt auf eigene Gefahr. Wir haben keinen Einfluss auf Inhalte von Drittanbietern.
Details
- Ersteller
- Florian Linde
- Veröffentlicht
- 27.8.2025
- Downloads
- 0
- Dateigröße
- 3.74 KB