
Pendant des années, jouer à Minecraft entre potes voulait dire passer par Aternos : pratique, gratuit, mais jamais vraiment chez soi. Il faut relancer l’instance à chaque session, on subit des redémarrages, et la RAM est plafonnée par un partage de ressources qu’on ne maîtrise pas. À un moment, j’ai eu envie de récupérer la main. chronicles_1.21, c’est notre monde rapatrié à la maison : un serveur Fabric en 1.21, modé selon les goûts du groupe, qui tourne en permanence sous systemd.
Sur le papier, migrer un serveur Minecraft, c’est copier un dossier. Dans les faits, ça a été deux belles galères.
Première galère : un monde corrompu
Le level.dat exporté depuis Aternos est arrivé illisible. C’est le fichier qui décrit le monde — sans lui, le serveur ne sait même pas où faire apparaître les joueurs. Il a fallu me plonger dans le format NBT de Minecraft, comprendre ce que le serveur attendait exactement, puis reconstruire le fichier à partir d’un backup secondaire avant de pouvoir réimporter le monde proprement. Nettement moins glamour qu’un cp -r.
Deuxième galère : l’OOM killer
Une fois en ligne, le serveur se faisait tuer par l’OOM killer du noyau dès qu’il y avait un peu de monde : la JVM réclamait plus que ce que la machine pouvait donner, et Linux tranchait. C’est ce bug qui m’a forcé à poser une vraie stratégie mémoire — un swap supplémentaire pour absorber les pics, une limite MemoryMax=6G côté systemd, et un -Xmx5G calibré pour laisser respirer le reste des services. Depuis, il tient sans broncher.
Le reste de la stack est plus tranquille : OpenJDK 21, Fabric Loader, quelques datapacks maison pour le loot et les recettes, et une persistance totale — le monde, les inventaires et les hauts faits vivent désormais chez moi. La suite logique, ce serait une sauvegarde incrémentale automatique et un petit bot Discord pour annoncer les redémarrages dans le salon.
Pour pas mal de développeurs de ma génération, Minecraft a été la première vraie porte d’entrée vers l’admin système. On apprend à lire un fichier de config en bidouillant
server.properties, et on découvre les journaux d’erreur le jour où la JVM crashe. Ce serveur prolonge la tradition : un projet de jeu qui sert d’école.