2025-06-04 : Installation d'un serveur Minecraft sur RPI4 avec PaperMC
Contexte
Ma fille joue un peu à Minecraft en local, en mode créatif. C'est bien mais au bout d'un moment on peut s'ennuyer un peu. J'avais joué et même un peu poncé Minecraft il y a quelques années en mode survie et c'est vrai que c'est assez chill de piocher dans les profondeurs du monde, de parfois faire des découvertes sympa.
L'idée serait donc de jouer un peu avec elle dans un monde partagé, en mode survie. Un monde persistant sur un serveur, facile à gérer, sans être trop pénible non plus (je n'ai pas tellement envie de me faire ch**er à le débugger tous les 3 jours).
Choix du serveur
A priori il n'y a pas 10000 choix : Vanilla ou PaperMC. PaperMC est un fork optimisé de Vanilla, parfait pour tourner sur des configurations modestes (par exemple un RPI).
Donc voilà je vais partir là dessus.
Le RPI
C'est un RPI4 avec 4Go de RAM je crois qui trainait par là et qui était inemployé. J'ai installé dessus un Raspberry Pi OS sans écran (Raspberry Pi OS Lite 64).
Il va être installé dans mon bureau, à côté de la box Internet, relié à celle ci en Ethernet.
Installation
Mise à jour du RPI
Déjà on met à jour le RPI (le truc de base à faire tout le temps) :
sudo apt update && sudo apt upgrade -y
Installation de Java
Ensuite on va installer Java. Attention il faut prendre la dernière version, la 21 :
wget ttps://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1+12/OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.1_12.tar.gz
Et on installe Java :
tar -xzf OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.1_12.tar.gz
sudo mkdir -p /opt/java
sudo mv jdk-21.0.1+12 /opt/java/jdk-21
On définit java21 comme java par défaut :
echo 'export JAVA_HOME=/opt/java/jdk-21' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
On check qu'on a bien la bonne version :
java -version
Et on doit obtenir une réponse de ce genre :
penjdk version "21.0.1" 2023-10-17
OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12)
Installation de PaperMC
mkdir -p ~/papermc
cd ~/papermc
wget https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/231/downloads/paper-1.21.4-231.jar
On crée un fichier EULA pour valider les conditions :
echo "eula=true" > eula.txt
Et ensuite on peut lancer le serveur, qui va créer les fichiers :
java -Xms1G -Xmx2G -jar paper-1.21.4-231.jar nogui
Et voilà normalement le serveur va tourner.
Détacher la session minecraft
Alors c'est bien beau tout ça, mais comme on est connecté au RPI en terminal, si on quitte la session, ça ferme le serveur. Pas cool.
L'idée c'est par exemple, tant qu'on est en lancement manuel, de mettre la session minecraft dans un screen.
Déjà on va créer un nouveau screen nommé minecraft :
screen -S minecraft
Ensuite on lance son serveur, en mode comme d'habitude.
Et après on détache le screen avec CTRL+D et A. On revient donc au screen de base dans le RPI.
Quand on veut retourner dedans, il suffit de faire un :
screen -r minecraft
Et hop on retrouve nos petits.
Configurer un peu le serveur
Il y a, une fois le serveur lancé et qu'il a créé ses fichiers, son monde de base, etc, un fichier nommé server.properties. Il y a plein d'options cool qu'on peut changer dedans.
Mais déjà ce qu'il faut (et on le verra plus tard notamment pour Tlauncher), c'est de modifier cette ligne :
online-mode=true
en :
online-mode=false
Ca permet la connexion de comptes offline. Donc ça laisse la porte ouverte à des petits hackers malins mais comme le serveur sera local et captif, pas de soucis particulier.
Ensuite, on va pouvoir changer le nom :
motd=Mon serveur Minecraft génial sur Pi
Et le nombre max de joueurs :
max-players=4
Pas plus de 4 ou 5 avec un RPI4. En vrai il y a 0 chance qu'on soit plus que cela à la maison mais c'est un garde fou qui prend 2 secondes à mettre dans le fichier des properties.
On relance le serveur et voilà les nouvelles configurations devraient être OK.
Installer Bluemap
Il faut le télécharger dans le dossier plugins du dossier du serveur (dans notre cas papermc) :
wget https://github.com/BlueMap-Minecraft/BlueMap/releases/download/v5.7/bluemap-5.7-paper.jar
Bien prendre la version paper qu'elle soit compatible.
Ensuite, bah c'est tout simple, on reboot le serveur (par exemple avec un stop dans l'invite quand le serveur est allumé) et ensuite on relance la commande java. Le plugin va se charger.
Pour accéder à la map, c'est tout simplement :
http://IP_SERVEUR:8100
Attention à ne pas mettre de https, sinon ça ne fonctionnera pas.
Et voilà, une belle map qui se charge dans le navigateur. Plutôt cool non ?
Un petit script de lancement ?
Plutôt que de lancer la commande java à chaque fois, un petit script permettra de lancer ça proprement.
Dans le dossier de votre choix (perso autant le mettre à la racine du home, c'est plus simple) :
sudo nano start.sh
Et on lui colle ça dedans :
#!/bin/bash
cd /home/pi/papermc
java -Xms1G -Xmx2G -jar paper-1.21.4-231.jar nogui
On sauvegarde, un petit :
chmod +x start.sh
Pour le rendre exécutable et hop on peut lancer le serveur directement avec :
./start.sh
Et côté du client minecraft ?
Alors oui c'est la question con mais j'ai acheté une fois Minecraft avec un compte Microsoft à lier, bref le truc chiant. Le problème, c'est qu'on ne peut pas jouer à plusieurs en même temps sur la même licence et ça c'est pénible. J'ai pas trop envie de racheter une licence non plus.
Du coup, j'ai installé le Minecraft officiel sur mes deux PC (le mien et celui de ma fille). J'ai lié le compte Microsoft sur les deux. En faisant cela, on peut jouer officiellement à Minecraft, mais uniquement sur un seul PC à la fois.
Une fois fait, j'ai téléchargé Tlauncher ici :
Et après il faut faire attention à choisir la même version de Minecraft que le serveur (donc la 1.21.4 dans mon cas), l'installer et la lancer.
Une fois fait, c'est tout simple, on va dans multijoueur, le serveur local doit apparaître et on se connecte dessus.
Avec cette manip, on peut donc jouer à deux joueurs à partir de la même licence de base de Minecraft.
Contenu sous licence CC BY-NC-SA 4.0