commit 8e5b20fbb82fc494fd67ccadeb7520b76e244259 Author: kB01guy Date: Thu Jun 17 19:01:51 2021 +0200 Initial Commit diff --git a/minecraft.service b/minecraft.service new file mode 100644 index 0000000..51fa21a --- /dev/null +++ b/minecraft.service @@ -0,0 +1,19 @@ +[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 -Xmx768M -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 diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..f88bdab --- /dev/null +++ b/readme.md @@ -0,0 +1,11 @@ +# Minecraft Server Tools + +This is everything I will use to setup my Minecraft Server at kb01.de. + + +## Tutorials +This is a list of interesting Tutorials, wich will help you to set up your own Minecraft Server: +- A Tutorial for setting up a Minecraft Server on a Raspberry Pi. It is helpful for showing how you can run your Server as a Systemd Service. https://linuxize.com/post/how-to-install-minecraft-server-on-raspberry-pi/ + +## Software I use to run my server +- strato-dns-updater https://github.com/aortmannm/strato-dns-updater diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..99dd689 --- /dev/null +++ b/setup.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +BASEDIR=$(pwd) + +# Helper +get_latest_release() { # Source: https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c + curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api + grep '"tag_name":' | # Get tag line + sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value +} + + +# Install Essentials +sudo apt-get -yq install git build-essential gnupg curl + +# Add Repositories +# Azul Zulu OpenJDK +#sudo apt-key adv \ +# --keyserver hkp://keyserver.ubuntu.com:80 \ +# --recv-keys 0xB1998361219BD9C9 +#curl -O https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-2_all.deb +#sudo apt-get install ./zulu-repo_1.0.0-2_all.deb + +#sudo apt-get update + + +# Install Software +#sudo apt-get install zulu16-jdk + + + + +# Create File Structure +mkdir -p ${BASEDIR}/tools/buildtools && \ +mkdir -p ${BASEDIR}/tools/java && \ +mkdir -p ${BASEDIR}/server/plugins + +# Setup mcrcon +cd ${BASEDIR}/tools && git clone https://github.com/Tiiffi/mcrcon.git \ +&& cd ${BASEDIR}/tools/mcrcon && gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c + +# Setup Java 16 +cd ${BASEDIR}/tools/java && curl -O https://cdn.azul.com/zulu/bin/zulu16.30.15-ca-jdk16.0.1-linux_amd64.deb \ +&& sudo apt -y install ./zulu16.30.15-ca-jdk16.0.1-linux_amd64.deb + +# Setup Spigot +cd ${BASEDIR}/tools/buildtools && curl -O https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar \ +&& java -jar BuildTools.jar --rev 1.17 + +# Setup Server-Space +cd ${BASEDIR}/server && cp ${BASEDIR}/tools/buildtools/spigot-1.17.jar ./spigot.jar + + # Download Plugins + cd ${BASEDIR}/server/plugins + + # BackupOnEvent https://www.curseforge.com/minecraft/bukkit-plugins/backuponevent + LATEST=$(get_latest_release enayet123/BackupOnEventPlugin) + curl -OL https://github.com/enayet123/BackupOnEventPlugin/releases/download/${LATEST}/BackupOnEvent.jar + # Vault https://www.curseforge.com/minecraft/bukkit-plugins/vault + LATEST=$(get_latest_release MilkBowl/Vault) + curl -OL https://github.com/MilkBowl/Vault/releases/download/${LATEST}/Vault.jar + # Essentials https://www.curseforge.com/minecraft/bukkit-plugins/essentialsx + LATEST=$(get_latest_release EssentialsX/Essentials) + curl -OL https://github.com/EssentialsX/Essentials/releases/download/${LATEST}/EssentialsX-${LATEST}.0.jar + # GriefPrevention https://www.curseforge.com/minecraft/bukkit-plugins/grief-prevention + curl -OL https://media.forgecdn.net/files/3173/411/GriefPrevention.jar + # ArmorStandEditor https://www.curseforge.com/minecraft/bukkit-plugins/armor-stand-edit + curl -OL https://media.forgecdn.net/files/2999/757/armorstandeditor-1.16-25.jar + # LuckPerms https://github.com/lucko/LuckPerms + wget https://ci.lucko.me/job/LuckPerms/1345/artifact/bukkit/loader/build/libs/LuckPerms-Bukkit-5.3.47.jar + # floodgate-bukkit Geyser-Spigot https://geysermc.org/ + wget https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/target/Geyser-Spigot.jar + wget https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/spigot/target/floodgate-spigot.jar + # emotecraft https://www.curseforge.com/minecraft/bukkit-plugins/emotecraft-bukkit + LATEST=$(get_latest_release KosmX/emotes) + curl -OL https://github.com/KosmX/emotes/releases/download/${LATEST}/emotecraft-2.0.5-bukkit.jar