Anleitung: Stabiler Minecraft 1.13 Server auf einem Synology NAS

Innerhalb von 5 Minuten kommt man mit einem Synology NAS mit Intel CPU (z.B. DS218+) und viel RAM zu einem stabilen Minecraft-Server. Die Intel CPU brauchen wir zwingend für das Docker-Paket, welches die potente Basis für den Server bildet.

Was wird benötigt?

Geht das auch mit einem DS216J?

Wenn man ein Synology NAS der J-Reihe hat, dann wird die Leistung nicht reichen. Diese Geräte haben meistens nur 512 MB Arbeitsspeicher und sind in dieser Hinsicht auch nicht aufrüstbar. Wenn das NAS noch ein paar andere Aufgaben neben Minecraft haben sollte, dann hat man damit keinen Spaß. In dem Fall empfehle ich mein Tutorial für Minecraft auf einem Raspberry Pi 3B+.

Warum Docker und nicht das Minecraft-Paket?

Docker erlaubt den Starten des Server innerhalb von Sekunden. Außerdem trennen wir damit den Minecraft-Server vom Rest des Synology-System und können es so besser kontrollieren. Das offizielle Paket verwendet dazu noch eine alte Version des Servers und nicht das performantere PaperMC für Minecraft 1.13.

In 5 Schritten zum Minecraft-Server

Schritt 1: Erstellen eines Shared Folders

Der Server braucht einen Speicherort auf der DiskStation in dem die Konfigurationsdateien und vor allem die Map liegt. Dafür legt man im Control Panel ein dediziertes Shared Folder an.

Schritt 2: Installieren von Docker

Über die Paketverwaltung vom DiskStation Manager installieren wir nun Docker. Wenn Docker dort nicht auftaucht, dann ist deine Diskstation damit leider nicht kompatibel. Das sollte man auch nicht erzwingen sondern statt dessen die Lösung mit einem Raspberry Pi in Erwägung ziehen.

Schritt 3: Runterladen des Dockerimages

In Docker selber suchst du nun in der Registry nach „MarcTV“ und wählst das Image „MinecraftPaperServer“ aus und lädst es runter.

Das ebenfalls verfügbare Overviewer Image ist für die Generierung einer Isometrischen Karte sobald der Server später läuft. Dies ist jedoch optional.

Schritt 4: Konfigurieren des Dockercontainers

Nachdem wir das Image runtergeladen haben, kann es nun als Container konfiguriert und gestartet werden.  Folgende Einstellungen sollten hier vorgenommen werden:

Docker ressource limitation

  • CPU priority: high
  • Memory Limit: 50% vom Arbeitsspeicher im NAS

Advanced Settings

  • enable auto-restart: yes

Volume

  • File/Folder: Das shared folder aus Schritt 1 hier auswählen
  • Mount path: /data

Port Settings

  • Local Port: 25565 TCP
  • Container Port: 25565 TCP
  • Local Port: 25565 UDP
  • Container Port: 25565 UDP

Environment

  • MEMORYSIZE: 33% eures Arbeitsspeichers im NAS

Diese Option ist etwas versteckt aber sehr wichtig. Ich habe hier 3 Gigabyte als Standard im Dockerfile für Xms und Xmx für JAVA gesetzt.

Schritt 5: Starten des Servers

Nun muss man den Server nur noch starten und er ist im lokalen Netzwerk verfügbar. Das Starten selber dauert beim ersten mal ca. 3 Minuten. Danach ist er nach wenigen Sekunden jederzeit verfügbar und gestartet.

Die Konfiguration geschieht über die Datei server.properties, die nach dem ersten Start in dem shared folder zusammen mit den anderen Dateien generiert wurden.

Schritt 6: Freigeben des Servers über das Internet

Ich nutze eine Fritzbox. Dort kann man unter den Einstellungen Internet > MyFritz-Konto eine Adresse einrichten, über die man die Fritzbox außerhalb des eigenen Netzwerks erreichen kann.

Unter Internet > Freigaben > Gerät für Freigaben hinzufügen > [Gerät auswählen] > Neue Freigabe > MyFritz Freigabe > Andere Anwendung und dort den Port „25565“ freigeben.

Die MyFritz-URL ist dann die Server-Adresse, die man in Minecraft einträgt. Mein Server läuft hier: mc.marc.tv

Wie sieht das Dockerfile aus?

Da ich persönlich gerne Dinge unter meiner Kontrolle haben möchte, fühle ich mich wohler mit einem überschaubaren Code aus vertrauenswürdiger Quelle: Nämlich von mir.

Wer nur dem Minecraftserver installieren will, der braucht sich das nicht anzuschauen oder gar verstehen. Mir geht es nur darum zu zeigen, wie simpel der Server aufgebaut ist:

################################
### We use a java base image ###
################################
FROM openjdk:8 AS build

MAINTAINER Marc Tönsing <marc@marc.tv>

#################
### Arguments ###
#################
ARG PAPERSPIGOT_CI_URL=https://papermc.io/ci/job/Paper-1.13/lastSuccessfulBuild/artifact/paperclip.jar

##########################
### Download paperclip ###
##########################
ADD ${PAPERSPIGOT_CI_URL} /opt/minecraft/server/paperclip.jar

############################################
### Run paperclip and obtain patched jar ###
############################################
RUN cd /opt/minecraft/server/ \
    && java -jar paperclip.jar; exit 0

RUN cd /opt/minecraft/server/ \
    && mv cache/patched*.jar paperspigot.jar

###########################
### Running environment ###
###########################
FROM anapsix/alpine-java:latest

#########################
### Working directory ###
#########################
WORKDIR /data

###########################################
### Obtain runable jar from build stage ###
###########################################
COPY --from=build /opt/minecraft/server/paperspigot.jar /opt/minecraft/server/paperspigot.jar

############################
### Obtain server config ###
###########################
ADD server.properties /opt/minecraft/server/server.properties

###############
### Volumes ###
###############
VOLUME "/data"

###############
### RCON   ###
###############
ARG RCON_CLI_VER=1.4.0
ARG ARCH=amd64
ADD https://github.com/itzg/rcon-cli/releases/download/${RCON_CLI_VER}/rcon-cli_${RCON_CLI_VER}_linux_${ARCH}.tar.gz /tmp/rcon-cli.tgz
RUN tar -x -C /usr/local/bin -f /tmp/rcon-cli.tgz rcon-cli && \
  rm /tmp/rcon-cli.tgz


#############################
### Expose minecraft port ###
#############################
EXPOSE 25565

######################################
### Entrypoint is the start script ###
######################################
ARG memory_size=3G
ENV MEMORYSIZE=$memory_size

WORKDIR /data
ENTRYPOINT /opt/jdk1.8.0_192/jre/bin/java -jar -Xms$MEMORYSIZE -Xmx$MEMORYSIZE -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -Dcom.mojang.eula.agree=true /opt/minecraft/server/paperspigot.jar

Mehr Code wird hier nicht verwendet. Er ist natürlich wie immer in meinem GitHub-Account verfügbar und ich freue mich über Verbesserungen.

Der Minecraft-Server auf dem Synology NAS
Der Minecraft-Server auf dem Synology NAS

Wieso bist du nicht auf dem Raspberry Pi geblieben?

Der Raspberry Pi hat nur 1 GB Speicher, der nicht erweiterbar ist. Wenn nun ein paar Leute auf dem Server wirklich spielen und mit einer riesigen Eisenbahn neue Chunks erzeugen verbraucht das Speicher. Nachdem der Server dann mehrmals abgestürzt ist und ich sogar einmal ein Backup wiederherstellen musste, habe ich nach einer neuen Lösung gesucht. Für kleinere Karten ist der Raspberry Pi mit PaperMC allerdings immer noch ein idealer und sehr günstiger Anfang.

4 Antworten auf „Anleitung: Stabiler Minecraft 1.13 Server auf einem Synology NAS“

  1. Bei meinem Linux-Server bleibt er bei diesem Schritt hängen?!

    Step 10/20 : ADD server.properties /opt/minecraft/server/server.properties

    ADD failed: stat /var/lib/docker/tmp/docker-builder135674059/server.properties: no such file or directory

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website zeigt Benutzerbilder über gravatar.com an.

Wie bekomme ich einen verifizierten Account? - Login