L’écosystème d’un serveur Hytale moderne ne se limite plus au jeu en lui-même. Pour offrir des fonctionnalités avancées comme des cartes en direct, des boutiques, des pages de statistiques ou des outils d’administration à distance, votre serveur doit pouvoir communiquer avec le web. C’est ici qu’intervient le Hytale WebServer Plugin.
Plutôt que de laisser chaque mod ouvrir son propre port et gérer ses connexions de manière chaotique, ce plugin agit comme une fondation centralisée. Il standardise la manière dont votre serveur Hytale expose des données via HTTP, facilitant grandement la vie des administrateurs système et optimisant les performances.
Installation et premier démarrage
L’installation de ce plugin est pensée pour être transparente. Il suffit de placer le fichier .jar dans le dossier mods/ de votre serveur Hytale.
Vous trouverez le JAR ici : https://github.com/nitrado/hytale-plugin-webserver/releases/
Au premier lancement, le serveur web va s’initialiser automatiquement. Par défaut, il écoute sur le port de votre serveur de jeu + 3. Par exemple, si votre serveur Hytale tourne sur le port 5520, le serveur web sera accessible sur le port 5523.
Si vous avez besoin de modifier ce comportement, notamment si vous hébergez plusieurs serveurs sur la même machine, vous pouvez créer ou éditer le fichier de configuration situé ici :mods/Nitrado_WebServer/config.json
Voici comment changer l’adresse et le port d’écoute :
{
"BindHost": "0.0.0.0",
"BindPort": 8080
}
La gestion avancée de la sécurité TLS
C’est le cœur de la configuration de ce plugin. Aujourd’hui, exposer un service web sans chiffrement est une pratique risquée. Le plugin Hytale WebServer intègre nativement le support du Transport Layer Security (TLS), vous permettant de passer du protocole HTTP au HTTPS sécurisé.
Par défaut, le plugin est sécurisé. Si vous ne touchez à rien, il générera automatiquement un certificat auto-signé. C’est fonctionnel pour des tests, mais les navigateurs web de vos joueurs afficheront un avertissement de sécurité car l’autorité de certification n’est pas reconnue.
Pour une configuration professionnelle, vous avez trois options principales à définir dans la section Tls de votre config.json.
Utiliser vos propres certificats (PEM)
Si vous avez déjà acheté un nom de domaine et généré des certificats SSL auprès d’une autorité reconnue, vous pouvez les fournir directement au plugin. C’est la méthode recommandée pour les serveurs établis qui disposent déjà d’une infrastructure web.
Il vous faudra le chemin vers votre certificat public et votre clé privée :
{
"Tls": {
"CertificateProvider": "pem",
"Pem": {
"CertificatePath": "/chemin/vers/votre/certificat.pem",
"PrivateKeyPath": "/chemin/vers/votre/cle-privee.pem"
}
}
}
Automatisation avec Let’s Encrypt
Le plugin intègre un support pour le protocole ACME, permettant d’obtenir gratuitement et automatiquement des certificats via Let’s Encrypt. Pour que cela fonctionne, votre serveur doit être accessible publiquement sur le port 80/443 ou le port configuré, et votre domaine doit pointer vers l’IP du serveur.
Attention : Lors de vos premiers tests, laissez la valeur Production sur false. Let’s Encrypt applique des limites strictes (rate limits) sur l’environnement de production. Passez à true uniquement lorsque votre configuration est validée.
{
"Tls": {
"CertificateProvider": "letsencrypt",
"LetsEncrypt": {
"Domain": "mon-serveur-hytale.com",
"Production": false
}
}
}
Désactiver le TLS (Mode non sécurisé)
Dans certains cas très spécifiques, par exemple si votre serveur Hytale est derrière un proxy inverse (Reverse Proxy) comme Nginx ou Apache qui gère déjà le SSL, vous pouvez vouloir désactiver le chiffrement au niveau du plugin pour éviter une double gestion.
Cependant, ne faites cela que si vous savez exactement ce que vous faites et que le serveur n’est pas exposé directement à internet.
{
"Tls": {
"Insecure": true
}
}
Authentification et comptes de service
Le plugin ne se contente pas de servir des pages ; il sécurise aussi l’accès aux données. Il s’intègre directement avec le système de permissions de Hytale. Cela signifie que vous pouvez restreindre l’accès à certaines pages web en fonction du rang du joueur en jeu.
L’utilisateur anonyme
Pour les pages publiques (comme une liste des joueurs connectés visible par tous), le plugin utilise un concept d’utilisateur « Anonyme ». Il possède un UUID spécifique (composé de zéros) et appartient au groupe ANONYMOUS.
Si vous souhaitez rendre certaines données accessibles sans mot de passe, vous devez accorder les permissions nécessaires au groupe ANONYMOUS dans votre fichier permissions.json principal du serveur Hytale.
Comptes de service (Service Accounts)
Pour les outils externes, comme un bot Discord qui viendrait interroger le serveur pour afficher le statut, il n’est pas recommandé d’utiliser un compte joueur. Le plugin permet la création de « Comptes de Service ».
Ces comptes sont définis via des fichiers JSON dans le dossier mods/Nitrado_WebServer/provisioning/. Ils permettent à des scripts de s’authentifier via une méthode « Basic Auth » standard pour effectuer des requêtes sécurisées vers votre serveur.
Pourquoi ce plugin est indispensable
Au-delà de la configuration technique, l’utilisation de ce WebServer unifié est une question de performance et de stabilité. Si vous installez un plugin de statistiques (comme Query) ou un plugin de surveillance de performance (comme Prometheus), ils dépendront de ce serveur web de base.
Cela évite d’ouvrir 10 ports différents sur votre pare-feu pour 10 mods différents. Vous centralisez le trafic HTTP/HTTPS, vous centralisez la gestion des certificats SSL, et vous offrez une interface standardisée et sécurisée pour tout l’écosystème web de votre projet Hytale.
