Server-Werkstatt · Schritt für Schritt

Bau deinen eigenen
Minecraft-Server 🟩

Hier lernst du, wie du einen Server baust, auf dem du mit deinen Freunden spielen kannst — auch wenn dein PC aus ist. Du machst das zusammen mit Papa. Ein Stück nach dem anderen. Du schaffst das!

👦 Dein Teil = grün  ·  🧑‍🔧 Papas Teil = gelb
📋 Euer Server

Die echten Daten von eurem Server

Diese Anleitung ist genau auf euren Server eingestellt — die Zahlen unten passen wirklich zu eurem Computer im Internet. Du brauchst sie immer wieder, also schau einfach hier nach:

  • 🌐 Serveradresse147.93.123.200  (Minecraft-Tür 25565)
  • 👑 Dein Chef-NameCombocraftGHG (Operator + erster Whitelist-Eintrag)
  • 🛟 Notfall-Speicher (Swap)2 GB (haben wir in Level 2 angelegt)
  • 📁 Server-Ordner (VPS)/home/projekte/minecraft-crafty
  • 🔒 Fernbedienung (Panel)nur lokal 127.0.0.1:8443 → nur über Papas Geheimgang (SSH-Tunnel)
  • 🧠 RAM für Minecraft4096 MB (der Server hat 16 GB — da ist ordentlich Luft)
💡Diese Werte stehen genau so in den Befehlen unten. Wenn etwas mal nicht klappt, vergleiche zuerst, ob du wirklich diese Zahlen benutzt hast.
0
👦 Für dich

Was ist überhaupt ein Server?

Dein Computer zu Hause geht aus, wenn du ins Bett gehst. Dann ist auch deine Minecraft-Welt aus — und niemand kann rein.

Ein Server ist ein Computer, der nie ausgeht. Er steht in einem großen Rechenzentrum und läuft Tag und Nacht. Deshalb können deine Freunde jederzeit in deine Welt kommen — sogar, wenn du gar nicht da bist.

🤔 Stell dir vor: Ein Server ist wie ein Klubhaus, das immer offen ist. Du bekommst den Schlüssel und entscheidest, wer reindarf.

Papa hat schon so einen Computer gemietet — er heißt VPS (das ist nur ein schickes Wort für „mein eigener Server im Internet“). Ein kleines Stück davon nutzen wir jetzt für dein Minecraft.

✅ Geschafft, wenn… du Papa erklären kannst, warum ein Server nie ausgeht.
1
👦 Für dich

Was ist Docker?

Docker ist wie eine magische Kiste 📦. Wir packen den Minecraft-Server in so eine Kiste. In der Kiste hat er alles, was er braucht — und er kann nichts anderes auf Papas Computer kaputt machen.

Falls mal etwas schiefgeht, ist nur die Kiste betroffen. Papas wichtige Internetseiten laufen trotzdem weiter. Praktisch, oder?

🤔 Zwei Wörter, die du jetzt kennst:
• Ein Image ist der Bauplan für die Kiste (wie ein LEGO-Bauplan).
• Ein Container ist die fertig gebaute Kiste, die gerade läuft.

Wir bauen zwei Kisten:

  • 📦 Eine Kiste mit einer Fernbedienung (sie heißt Crafty Controller) — damit steuerst du alles bequem im Browser.
  • 📦 Eine Kiste mit dem Minecraft-Server selbst.
✅ Geschafft, wenn… du weißt, was ein Image und ein Container ist.
2
🧑‍🔧 Papas Teil

Sicherheit zuerst: RAM-Bremse + Schwimmflügel

Dieser Schritt ist für Papa. Er sorgt dafür, dass der Minecraft-Server niemals die anderen Webseiten auf dem VPS lahmlegt.

⚠️Wichtig: Unser VPS (147.93.123.200) hat zwar ordentlich 16 GB RAM und außer dem Minecraft-Projekt läuft nur diese Webseite darauf — trotzdem gilt: Ein Minecraft-Server ist hungrig. Ohne Bremse kann er sich mit der Zeit immer mehr Speicher nehmen → der Linux-Kernel killt dann irgendeinen Prozess (OOM) und reißt im schlimmsten Fall alles mit. Deshalb machen wir zwei Schutzmaßnahmen, bevor irgendetwas startet — das ist einfach gute Handwerksregel, egal wie viel RAM da ist.

2a · Swap-Datei anlegen (der Notfall-Speicher / „Schwimmflügel“)

Swap ist Festplatte, die als Notfall-RAM einspringt. Lieber etwas langsam als ein Absturz. Wir legen 2 GB an (Platz ist genug da — fast 200 GB frei):

Terminal · auf dem VPS (als root / mit sudo)
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Kontrolle:
free -h
swapon --show

Damit der Swap auch nach einem Neustart automatisch wieder da ist, tragen wir ihn dauerhaft ein. Der grep -q … ||-Anfang ist ein Schutz: er schreibt die Zeile nur, wenn sie noch nicht drinsteht — so kann nie ein Doppel-Eintrag passieren:

Terminal · Swap dauerhaft machen
grep -q '/swapfile' /etc/fstab || echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# Kontrolle:
grep swapfile /etc/fstab

Optional, damit Swap erst spät benutzt wird (RAM bleibt bevorzugt — gerade hier wichtig):

Terminal · optionaler Feinschliff
sudo sysctl vm.swappiness=10
grep -q 'vm.swappiness' /etc/sysctl.conf || echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

# Kontrolle (muss 10 zeigen):
cat /proc/sys/vm/swappiness

2b · Die RAM-Bremse kommt gleich mit

Die eigentliche Begrenzung (mem_limit) setzen wir im nächsten Level direkt in der Docker-Datei. So bekommt die Minecraft-Kiste eine feste Portion RAM und kann nie mehr nehmen.

✅ Geschafft, wenn… swapon --show die 2 GB Swap anzeigt und swappiness auf 10 steht.
3
🧑‍🔧 Papas Teil 👦 Mitschauen

Die Fernbedienung installieren (Crafty Controller)

Crafty Controller ist eine kinderfreundliche Weboberfläche. Damit startest und stoppst du den Server, siehst die Konsole, verwaltest Spieler und machst Backups — alles mit Klicks, ohne Tippen.

Kurzer Vorab-Check: docker compose version muss eine Version anzeigen (auf eurem Server läuft echtes Docker Engine 29 mit Compose — der Befehl ist docker compose mit Leerzeichen).

Papa legt den Ordner an (genau dort, wo auch die anderen Projekte liegen) und schreibt eine kleine Datei namens docker-compose.yml:

Terminal · auf dem VPS
mkdir -p /home/projekte/minecraft-crafty && cd /home/projekte/minecraft-crafty
nano docker-compose.yml

Inhalt der Datei (die RAM-Bremse ist schon eingebaut, und das Panel ist von Anfang an sicher eingestellt!):

docker-compose.yml
services:
  crafty:
    container_name: crafty
    image: registry.gitlab.com/crafty-controller/crafty-4:latest
    restart: unless-stopped
    environment:
      - TZ=Europe/Berlin
    ports:
      - "127.0.0.1:8443:8443"   # Web-Panel NUR lokal -> nur per SSH-Tunnel (siehe Level 5)
      - "25565:25565"           # Minecraft-Server (oeffentlich, fuer deine Freunde)
    volumes:
      - ./crafty/backups:/crafty/backups
      - ./crafty/logs:/crafty/logs
      - ./crafty/servers:/crafty/servers
      - ./crafty/config:/crafty/app/config
      - ./crafty/import:/crafty/import
    # ---- Schutz-Grenzen: feste Portion, nie mehr ----
    mem_limit: 6g          # mehr als 6 GB RAM darf die Kiste nie nehmen
    memswap_limit: 7g      # 6 GB RAM + 1 GB Swap als Notfallpuffer
    pids_limit: 400
    cpus: "3"
🔒Kleiner, aber wichtiger Unterschied: Die Panel-Tür steht als 127.0.0.1:8443:8443 da — also nur am Server selbst erreichbar, nicht aus dem Internet. Warum so? Docker schreibt beim Öffnen von Ports seine eigenen Firewall-Regeln und umgeht damit ufw. Ein späteres ufw deny 8443 würde das Panel also gar nicht zusperren! Mit 127.0.0.1: davor ist die Tür von außen unsichtbar — nur Papas SSH-Tunnel (Level 5) kommt rein. Minecraft (25565) bleibt absichtlich öffentlich.

Speichern (in nano: Strg+O, Enter, Strg+X) und starten:

Terminal · auf dem VPS
docker compose up -d
docker compose logs -f      # zuschauen, bis "Server started" kommt (Strg+C zum Beenden)
🧪RAM-Bremse prüfen (wichtig!): Lass dir die laufenden Kisten anzeigen — hinter dem Schrägstrich bei crafty muss 2GiB stehen. Das ist der Beweis, dass das Limit wirklich greift.
Limit kontrollieren
docker ps                    # läuft "crafty" als Up?
docker stats --no-stream     # Spalte MEM USAGE / LIMIT -> "/ 2GiB" bei crafty
💡Beim allerersten Start dauert es 1–2 Minuten. Crafty erstellt dann ein Start-Passwort — du findest es in den Logs oder mit:
Start-Passwort anzeigen
docker exec -it crafty cat /crafty/app/config/default-creds.txt
✅ Geschafft, wenn… docker ps die Kiste crafty als „Up“ zeigt und docker stats bei ihr / 2GiB als Limit anzeigt.
4
👦 Für dich (im Browser)

Deinen Server bauen 🛠️

Jetzt darfst du! Öffnet im Browser das Panel (wie ihr da sicher drankommt, steht in Level 5):

🔑Adresse: https://localhost:8443 (über Papas sicheren Tunnel). Beim ersten Mal mit dem Start-Passwort einloggen.

4a · Erster Login: deinen Admin sicher machen

Crafty hat am Anfang einen Standard-Benutzer namens admin mit dem Start-Passwort aus Level 3. Den machen wir sofort zu deinem Login:

  1. Oben auf das Zahnrad / ConfigUsers (Benutzer).
  2. Den Benutzer admin anklicken (Bearbeiten).
  3. User Name in deinen eigenen ändern (z. B. combocraftGHG).
  4. Ein neues, eigenes Passwort setzen (nur du und Papa kennen es).
  5. Super User muss angehakt bleiben ✅ — sonst verlierst du Rechte. Enabled ebenfalls an.
  6. Speichern.
📧Eine „Gravatar-Email“ ist optional (nur für ein Profilbildchen). Du kannst sie leer lassen.
🤔 Wichtig zu wissen: Dieser Panel-Login (combocraftGHG) ist nicht dasselbe wie dein Minecraft-Name CombocraftGHG (der kommt in Level 5 für Whitelist + Operator). Sie dürfen gleich heißen, haben aber nichts miteinander zu tun.

4b · Den Server bauen

So baust du den Server, Klick für Klick:

  1. Oben auf „Create New Server“ klicken.
  2. Bei Server Type wählst du „Minecraft Java“.
  3. Bei Server-Software nimmst du am besten Paper — das ist wie normales Minecraft, aber schneller und braucht weniger RAM. 👍
  4. Eine Version aussuchen (am besten die, die du auch im Spiel hast).
  5. RAM einstellen: Minimum 4096 MB, Maximum 4096 MB (falls das Feld in GB ist: 4 GB). Min und Max beide auf 4096 — das reicht für euch und eure Freunde locker.
  6. Server Port: 25565 stehen lassen — nicht ändern! Nur diese Tür ist nach draußen geöffnet.
  7. Den Haken bei EULA akzeptieren setzen (das sind die Minecraft-Regeln — Papa liest kurz mit).
  8. Auf „Create“ klicken — Crafty lädt jetzt die Paper-Datei herunter (kann ~1 Minute dauern).
🤔 Warum 4096 MB? Euer Server hat 16 GB RAM — nach Abzug von Linux, Webseite und Voice-Chat bleiben noch über 10 GB frei. 4096 MB für Minecraft ist ein guter, ruhiger Wert: genug für eine Handvoll Spieler und viele Bauwerke, und die Bremse in der Docker-Datei (6 GB) lässt trotzdem immer Luft für den Rest.

4c · Starten 🚀

Auf der Server-Seite den großen grünen Start-Knopf drücken und in der Konsole zuschauen, bis grün „Done!“ oder „Server started“ erscheint.

🦁Brave-Browser-Falle: Wenn nach „Start“ lange „Sending your command…“ steht und eine Warnung über Ad-Blocker erscheint, blockiert Brave Shields die Live-Verbindung zum Server. Fix: oben in der Adressleiste auf das Brave-Löwen-Symbol 🦁 → Shields für diese Seite ausschalten → Seite neu laden (F5) → Start nochmal drücken. Das gilt nur für localhost — alle anderen Seiten bleiben in Brave geschützt. (Mit Chrome/Firefox tritt das meist nicht auf; dort ggf. ein aktives uBlock für die Seite pausieren.)
🧪Gegencheck im VPS-Terminal: docker stats --no-stream — bei crafty darf der Wert jetzt auf ~1,3–1,5 GiB steigen, muss aber unter 2GiB bleiben.
✅ Geschafft, wenn… in der Crafty-Konsole grün „Done!“ oder „Server started“ steht.
5
👦 Für dich 🧑‍🔧 + Papa (Firewall)

Sicher machen — das Wichtigste! 🛡️

Ein Server im Internet ist wie eine offene Tür. Wir sorgen dafür, dass nur deine Freunde reinkommen und niemand Unfug macht.

5a · Nur Freunde dürfen rein (Whitelist)

Die Whitelist ist deine Gästeliste. Nur wer draufsteht, darf auf den Server. In der Crafty-Konsole tippst du:

Crafty-Konsole (Befehle eingeben)
whitelist on
whitelist add CombocraftGHG
whitelist add NameVonFreund1
whitelist add NameVonFreund2
op CombocraftGHG

Mit op CombocraftGHG wirst du der Chef (Operator) im Spiel — nur du darfst Spielregeln ändern, Wetter zaubern usw.

5b · Echte Accounts (online-mode)

In den Server-Einstellungen (oder in server.properties) prüft Papa, dass diese Sachen so stehen:

server.properties
online-mode=true
white-list=true
enforce-whitelist=true
difficulty=easy
max-players=5
view-distance=8
simulation-distance=6
spawn-protection=16

online-mode=true heißt: nur echte, gekaufte Minecraft-Konten dürfen rein. Niemand kann sich als du ausgeben.

5c · Die Türen am VPS (Firewall — Papas Teil)

🚪Sehr wichtig: Die Minecraft-Tür (25565) darf offen sein. Die Fernbedienung-Tür (8443) ist dank der 127.0.0.1:-Einstellung aus Level 3 schon gar nicht nach außen offen — perfekt. Wir öffnen jetzt nur Minecraft und nutzen für das Panel den Geheimgang.

Der sichere Weg zum Panel: ein SSH-Tunnel. Papa tippt auf seinem eigenen Computer (nicht auf dem VPS):

Papas Computer (nicht der VPS)
ssh -L 8443:localhost:8443 root@147.93.123.200

Solange dieses Fenster offen ist, erreicht ihr das Panel unter https://localhost:8443 — und sonst niemand auf der Welt.

Die Firewall am VPS so einstellen (öffnet Minecraft, der Rest bleibt geschützt):

Terminal · auf dem VPS
sudo ufw allow 25565/tcp     # Minecraft fuer deine Freunde
sudo ufw deny 8443/tcp       # extra Riegel (8443 ist eh schon nur lokal)
sudo ufw enable
sudo ufw status
⚠️Vor ufw enable kurz nachdenken: Stell sicher, dass auch SSH offen bleibt, sonst sperrst du dich selbst aus! Falls SSH auf dem Standard-Port läuft: vorher sudo ufw allow OpenSSH (oder sudo ufw allow 22/tcp) ausführen.
🔐Merksatz für die ganze Familie: starke Passwörter, niemals weitergeben. Das Panel ist nur für dich und Papa.
✅ Geschafft, wenn… Whitelist an ist, du Operator bist und die Panel-Tür von außen zu ist (nur per Tunnel erreichbar).
6
👦 Endlich spielen!

Mitspielen 🎮

Starte Minecraft (Java Edition) auf deinem PC:

  1. Klick auf „Mehrspieler“.
  2. Dann auf „Server hinzufügen“.
  3. Servername: z. B. Mein CombocraftGHG-Server
  4. Serveradresse: 147.93.123.200  (der Port 25565 ist der Standard und kann weg)
  5. Auf Fertig und dann Beitreten — viel Spaß! 🟩
👫Deine Freunde geben dieselbe Adresse ein. Wichtig: Du musst ihren Minecraft-Namen vorher mit whitelist add Name auf die Gästeliste setzen (Level 5a).
🎤Quatschen beim Spielen: Ihr habt auch einen eigenen Voice-Chat — wie Discord, nur auf eurem eigenen Server. Hier geht’s zur Anleitung →
✅ Geschafft, wenn… du in deiner eigenen Welt auf deinem eigenen Server stehst. 🎉
7
👦 Neugierig? 🧑‍🔧 mit Papa

Hinter die Kulissen schauen 🔍

Die Fernbedienung (Crafty) drückt für dich eigentlich nur Knöpfe im Terminal. Willst du sehen, wie es darunter aussieht? Papa tippt mal mit dir zusammen:

Terminal · auf dem VPS
docker ps                       # welche Kisten laufen gerade?
docker stats --no-stream        # wie viel RAM/CPU braucht jede Kiste?
docker logs crafty --tail 30    # was sagt Crafty?
docker exec -it crafty bash     # IN die Kiste hineingehen
ls /crafty/servers              # hier liegen deine Welten!
exit                            # wieder rausgehen
🤔 Cooler Gedanke: Eine „Welt“ ist einfach ein Ordner voller Dateien. Wenn du diesen Ordner kopierst, hast du ein Backup deiner ganzen Welt!
✅ Geschafft, wenn… du mit docker ps deine laufenden Kisten gesehen hast.
8
👦 Du bist der Chef

Volle Kontrolle = deine Aufgaben 👑

Du hast jetzt die volle Kontrolle über deinen Server. Ein guter Chef kümmert sich um vier Dinge:

  • 💾 Backups: Stelle in Crafty unter „Backups“ einen Zeitplan ein (z. B. jeden Tag). Lade ab und zu ein Backup herunter — falls mal was kaputtgeht, ist deine Welt sicher.
  • 👫 Gästeliste: Du entscheidest, wer auf die Whitelist kommt. Nur Leute, die du wirklich kennst.
  • ⚖️ Fair sein: Als Operator hast du viel Macht. Sei nett zu deinen Freunden — kein Ärgern, kein Rauswerfen aus Spaß.
  • 🔄 Updates: Ab und zu in Crafty die Server-Version aktualisieren (zusammen mit Papa).
🤝Die faire Grenze: Du bist Chef von deinem Minecraft-Server (Start/Stopp, Spieler, Einstellungen, Welt). Papa bleibt Chef vom ganzen Computer (das root-Passwort, SSH, die Firewall). So bleibt alles sicher — und du hast trotzdem die volle Kontrolle über dein Spiel.
✅ Geschafft, wenn… ein automatisches Backup eingestellt ist.
🏆🟩🎉

Alle Levels geschafft!

Du hast deinen eigenen, sicheren Minecraft-Server gebaut und hast die volle Kontrolle. Mega! Zeig Papa, was du gelernt hast — und lade deine Freunde ein.

📖 Wörterbuch

Schwierige Wörter, ganz einfach erklärt.

Server
Ein Computer, der nie ausgeht, damit Freunde immer reinkommen.
VPS
„Virtueller privater Server“ — Papas gemieteter Computer im Internet.
Docker
Eine magische Kiste, in der ein Programm sicher und getrennt läuft.
Image
Der Bauplan für eine Docker-Kiste.
Container
Die fertige, laufende Docker-Kiste.
RAM
Der Arbeitsspeicher — das Kurzzeitgedächtnis des Computers. Davon gibt es nicht unendlich viel.
Swap
Notfall-Speicher auf der Festplatte, wenn das RAM voll ist. Bei euch: 2 GB.
Port
Eine nummerierte Tür am Computer. Minecraft benutzt Tür 25565.
Whitelist
Deine Gästeliste — nur wer draufsteht, darf rein.
Operator (op)
Der Chef im Spiel, der Regeln ändern darf.
EULA
Die Minecraft-Regeln, die man einmal akzeptieren muss.
Backup
Eine Sicherheitskopie deiner Welt.
Firewall
Ein Türsteher, der entscheidet, welche Türen offen sind.
SSH-Tunnel
Ein geheimer, sicherer Geheimgang zum Server.

🛟 Hilfe — wenn etwas klemmt

Keine Sorge, das passiert jedem. Hier die häufigsten Probleme.

Ich kann nicht auf den Server kommen („Connection refused“ / „Verbindung abgelehnt“)
1. Läuft der Server? Im Crafty-Panel auf Start drücken.
2. Ist die Tür offen? Papa prüft sudo ufw status25565/tcp muss „ALLOW“ sein.
3. Richtige Adresse? 147.93.123.200 ohne Tippfehler.
4. Stehst du auf der Whitelist? Sonst: whitelist add DeinName.
Der Server ruckelt oder ist langsam
Das ist meist zu wenig RAM. In Crafty den view-distance auf 6 senken, max-players klein halten, und keine schweren Mods. Mit docker stats kann Papa sehen, ob die Kiste an ihre 6-GB-Grenze stößt. Wenn es oft ruckelt, kann Papa das Minecraft-RAM (Level 4) vorsichtig erhöhen — immer unter der 6-GB-Bremse bleiben.
Andere Webseiten auf dem VPS sind plötzlich weg
Dann hat wahrscheinlich der Speicher nicht gereicht (OOM). Prüfen: Ist die Swap-Datei aus Level 2 aktiv (swapon --show2 GB)? Steht mem_limit: 6g in der docker-compose.yml und zeigt docker stats bei crafty / 6GiB? Notfalls Minecraft-RAM (Level 4) auf 3072 MB senken oder den Server kurz stoppen. Im Zweifel: VPS einmal neu starten (Swap kommt dank fstab-Eintrag automatisch wieder).
Ich habe mein Crafty-Passwort vergessen
Papa kann es zurücksetzen: docker exec -it crafty python3 main.py --reset_password username (in der Crafty-Doku nachschauen) oder das Start-Passwort aus default-creds.txt erneut ansehen.
Ich komme nicht ins Panel (https://localhost:8443)
Das Panel ist absichtlich nur lokal erreichbar. Papa muss zuerst den SSH-Tunnel auf seinem Computer starten: ssh -L 8443:localhost:8443 root@147.93.123.200. Solange dieses Fenster offen ist, geht https://localhost:8443. Schließt sich das Fenster, ist auch das Panel wieder „zu“ — das ist gewollt und sicher.
Mein Freund spielt auf dem Tablet/der Konsole (Bedrock)
Dieser Server ist die Java-Edition (PC). Tablet/Konsole nutzen die Bedrock-Edition und können standardmäßig nicht direkt mitspielen. Dafür bräuchte man eine Zusatz-Software (z. B. „Geyser“). Fragt Papa — das ist ein eigenes kleines Abenteuer für später.