// VPS

Minecraft-server op een VPS installeren: Ubuntu, Java 21 en systemd

Minecraft-server op een VPS installeren: Ubuntu, Java 21 en systemd

De meeste mensen die een Minecraft-server willen, zijn beter af met een gameserverpakket: paneel, back-ups, één klik updaten. Maar er is een groep voor wie een VPS de betere keuze is: je wilt meerdere kleine servers achter een proxy, je wilt zelf scripts en cronjobs draaien, of je wilt gewoon leren hoe het onder de motorkap werkt. Deze gids zet een Paper-server neer op Ubuntu 24.04, als systemd-service die na een reboot vanzelf start en bij het stoppen netjes de wereld opslaat. Reken op een half uur.

Welke VPS?

Minecraft draait op één kern en wil daar een snelle van. Kies daarom de Normal-lijn met de AMD EPYC 7443P (tot 4,0 GHz): HEN-N-02 met 4 GB voor € 5,30 per maand is een goede start voor 5 tot 10 spelers, HEN-N-03 met 4 vCores en 8 GB voor € 9,50 als je plugins of meerdere servers wilt. De budgetlijn op de oudere Xeon werkt ook, maar je merkt de lagere kloksnelheid in de tickrate zodra het druk wordt. Hou 1 GB vrij voor het besturingssysteem: op een VPS van 4 GB geef je de server 3 GB.

Acht stappen om een Minecraft-server op een Ubuntu-VPS te installeren: gebruiker, firewall, Java 21, Paper en EULA, systemd-service, RCON, back-ups, updaten
De acht stappen van een lege Ubuntu-VPS naar een Paper-server die vanzelf start en netjes opslaat.

Stap 1: inloggen, updaten, een aparte gebruiker

Log in via SSH (zo verbind je) en begin met updates en een gebruiker zonder rootrechten. De server draait straks onder die gebruiker, zodat een kwaadaardige plugin niet meteen je hele machine heeft.

apt update && apt upgrade -y
adduser --disabled-password --gecos "" minecraft
mkdir -p /opt/minecraft && chown minecraft:minecraft /opt/minecraft

Stap 2: firewall

ufw allow OpenSSH
ufw allow 25565/tcp
ufw enable

Alleen SSH en de Minecraft-poort staan open. Wil je later Geyser voor Bedrock-spelers, dan komt daar 19132/udp bij. RCON (stap 6) zet je bewust níét open naar buiten.

Stap 3: Java 21

Minecraft 1.20.5 en nieuwer, inclusief de 26.x-versies, vereisen Java 21. Op Ubuntu 24.04 is dat één regel; onze kennisbank heeft er een aparte handleiding voor als je op een andere distributie zit.

apt install -y openjdk-21-jre-headless
java -version

Stap 4: Paper downloaden en de EULA

Download de nieuwste Paper-build voor je Minecraft-versie van de PaperMC-site en zet hem als paper.jar in /opt/minecraft. Start hem één keer als de gebruiker minecraft; hij maakt de bestanden aan en stopt op de EULA.

su - minecraft
cd /opt/minecraft
java -Xms3G -Xmx3G -jar paper.jar --nogui
sed -i 's/eula=false/eula=true/' eula.txt

Met -Xms en -Xmx gelijk voorkom je dat Java het geheugen steeds opnieuw moet aanvragen. Meer vlaggen, zoals de bekende garbage-collector-tuning, kunnen later; voor tien spelers merk je het verschil niet. Pas nu ook server.properties aan: online-mode=true laten staan, view-distance op 8, en een motd. Wat de andere regels doen, staat in server.properties uitgelegd.

Stap 5: de systemd-service

Dit is de stap die een VPS-server van een "scherm dat ik open laat staan" onderscheidt. Maak /etc/systemd/system/minecraft.service:

[Unit]
Description=Minecraft (Paper)
After=network-online.target
Wants=network-online.target

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now minecraft
systemctl status minecraft
journalctl -u minecraft -f

KillSignal=SIGINT is de belangrijkste regel: de Minecraft-server vangt dat signaal op en slaat alle werelden op voordat hij stopt, precies zoals bij stop in de console. Zonder die regel krijgt hij bij een reboot een hard signaal en riskeer je een corrupte chunk. TimeoutStopSec geeft hem daar twee minuten voor; een grote wereld heeft dat soms nodig.

Stap 6: een console via RCON

Een service heeft geen scherm waar je commando's in typt. De nette oplossing is RCON: zet in server.properties enable-rcon=true, rcon.port=25575 en een lang rcon.password, en installeer op de VPS een RCON-client zoals mcrcon. Omdat de firewall die poort niet openzet, is RCON alleen lokaal bereikbaar en dat is precies goed. Een alternatief dat veel beheerders prettiger vinden: de server in screen of tmux starten vanuit de service, zodat je met screen -r de echte console ziet. Dat werkt, maar de stop-logica wordt dan ingewikkelder; begin met RCON.

Stap 7: back-ups

Onze VPS'en hebben back-ups van de hele machine inbegrepen, maar een wereld wil je vaker en gerichter bewaren. Een cronjob die elk uur de wereldmappen inpakt is genoeg:

0 * * * * tar -czf /opt/backups/wereld-$(date +\%Y%m%d-%H).tar.gz -C /opt/minecraft world world_nether world_the_end

Zet daar een regel bij die bestanden ouder dan zeven dagen opruimt, en kopieer de map af en toe naar een andere plek dan de VPS zelf. Een back-up op dezelfde schijf als de server is geen back-up.

Stap 8: updaten en bijhouden

Updaten is het nieuwe paper.jar neerzetten en systemctl restart minecraft. Kijk voor elke update naar de plugins: die moeten de nieuwe versie ondersteunen. Hou de machine in de gaten met htop en free -m; blijft er minder dan een paar honderd MB vrij, dan is het tijd voor een groter pakket, wat maandelijks kan.

Eerlijk: wanneer je dit niet moet doen

Alles hierboven krijg je bij een Minecraft-gameserver kant-en-klaar: paneel met console, back-ups met één klik, versie wisselen, plugins installeren, en DDoS-bescherming op de spelpoort. Die begint bij € 0,50 per maand en kost ongeveer € 1,10 per GB, wat voor één server goedkoper is dan een VPS van vergelijkbare grootte. De VPS wint pas bij meerdere servers, een Velocity-proxy, eigen software ernaast of gewoon de wens om het zelf te doen. Wil je het beste van twee werelden, kijk dan naar Pterodactyl op je eigen VPS: een paneel dat je zelf beheert.

Verder lezen

// ZELF PROBEREN
Je Minecraft-server binnen 60 seconden online
Bekijk de pakketten →