Nazel launcher

Nazel launcher

Publié le : 06/08/2026

Dernière modification : 13/09/2026

Tags :

DockerElectronJavaReactJSSpring Boot

Introduction

Durant les vacances d’été 2023, j’ai eu l’ambition de construire un launcher Minecraft privé permettant de simplifier la connexion à tous mes serveurs. En effet, depuis plusieurs années j’ai l’habitude d’héberger des serveurs Minecraft sur mon serveur personnel. Cependant nombreux étaient mes amis qui avaient des difficultés à se connecter sur certains de mes serveurs modés car les modes étaient régulièrement mis à jour ou modifié. Nazel launcher, devait donc permettre de simplifier la connexion à mes serveurs tout en proposant un launcher optimisé et configurable.

Image de l'article

L’Écosystème du Projet

Lors de la conception du launcher, j’ai développé tout un écosystème de solutions interconnectées. Certaines étaient dédiées à l’administration automatisée de l’infrastructure, tandis que d’autres simplifiaient l’accès au logiciel et la configuration de certains serveurs pour les utilisateurs.

Voici la liste des différentes solutions:

  • Nazel Launcher : Le coeur du projet conçu avec electron
  • Nazel API : API SpringBoot permettant de manager tous les serveurs
  • Blessing Skin Docker : Contenerisation d’une solution qui permet aux joueurs de changer leurs skins
  • Nazel Website : Conçu en NextJS page d’accueil du projet
  • Nazbot : Conçu avec NodeJS, bot discord capable de donner un statut sur mon infrastructure
  • Nazel_Manager_Plugin : Conçu en java avec Spigot, permet de générer et de manager les serveurs connectés à l’API

Développement

Au début du projet j’ai du chercher une manière pour développer rapidement et simplement un launcher. Pour cela plusieurs propositions s’offraient à moi : Java, Electron et Tauri. J’ai fait le choix d’utiliser Electron car l’aspect multiplateforme m’intéressait beaucoup. Je pense qu’avec java et JavaFX j’allais avoir plus de difficultés à proposer un logiciel cross Plateforme. En raison de mon bas niveau en Rust, Tauri était encore trop compliqué pour moi.

Une fois le Framework choisi, j’ai du chercher comment lancer Minecraft en dehors du launcher de base. J’ai donc trouvé une librairie appelée Minecraft-launcher-core permettant de générer et gérer des clients Minecraft. J’ai du aussi trouver un moyen pour stocker les différentes versions du jeu, les utilisateurs et les serveurs existants. Pour palier à ce problème je suis parti sur Firestore car la solution était gratuite et robuste.

Une fois que mon launcher me paraissait terminé, j’ai décidé d’ajouter un système de personnalisation de skins. J’ai donc trouvé sur internet un projet appelé Blessing Skin permettant de stocker des skins et cape puis ensuite de les afficher en jeu grâce au mode CustomSkinLoader. Cependant voulant une infrastructure docker uniquement j’ai du concevoir un conteneur pour Blessing Skin.

Image de l'article

J’ai aussi développé un site internet pour faciliter le téléchargement du logiciel, je n’ai pas pris le temps de le référencer sur google car je n’en voyais pas l’utilité pour le moment.

Image de l'article

Une api et un plugin ont aussi été développé en Java pour manager les serveurs.

Points d’améliorations et apprentissages

Grâce à ce projet j’ai découvert comment utiliser Electron, malheureusement j’ai compris bien trop tard comment structurer proprement un projet Electron, le code est donc encore très brouillon. Pour le design du launcher je me suis fortement inspiré d’un launcher déjà existant “Nation Glory” malgré un beau rendu après réflexion j’aurais préféré faire le design moi même pour m’améliorer dans ce domaine. Une fonctionnalité permettant aux utilisateurs de créer leurs propre serveur privé est encore inachevé, seul le back-end est terminé. Certains bugs sont présent sur launcher en fonction du système d’exploitation utilisé.

J’ai aussi découvert les bases de Spring Boot et comment construire un conteneur de zéro.

Conclusion

J’ai adoré faire ce projet, pour le moment c’est l’un des projets dont j’en suis le plus fière. Il m’a permis de découvrir de nombreux aspects de la programmation et comment les manipuler. Ce projet est totalement fonctionnel et me sert souvent.