Projet
Aeroliths Server - Bot Discord de gestion de serveurs de jeu
Découvrez les détails de ce projet, les technologies utilisées et les résultats obtenus
Description
À propos du projet
Bot Discord développé en TypeScript pour administrer les serveurs de jeu hébergés sur mon VPS (Minecraft, Palworld, Satisfactory, etc...) directement depuis Discord, sans passer par une connexion SSH. Le bot dialogue avec le démon Docker de la machine pour démarrer, arrêter et surveiller chaque stack de jeu, et expose ces actions sous forme de commandes et de boutons utilisables par les joueurs.
Gestion des serveurs :
- Menu déroulant listant les serveurs avec leur état en temps réel, et boutons contextuels adaptés selon que le serveur tourne ou non
- Panneau épinglé auto-actualisé, rafraîchi sur les événements Docker et toutes les 5 minutes
- Garde-fous au démarrage : détection des conflits de ports (tous les serveurs Minecraft partagent le même port) et vérification de la RAM disponible avant lancement, avec confirmation explicite pour passer outre
- Arrêt automatique des serveurs vides après un délai configurable, avec minuteurs persistés sur disque pour survivre aux redémarrages du bot
- Séparation des droits : commandes d'information ouvertes à tous, actions d'administration réservées au propriétaire
Passerelle Minecraft - Discord :
- Retransmission dans un salon Discord du chat, des connexions, des morts et des succès, par lecture en continu des journaux du serveur
- Relais inverse des messages Discord vers le jeu
- Statistiques dérivées : classement des morts et temps de jeu par joueur, calculés à partir des sessions de connexion
Administration en jeu :
- Pilotage à distance via RCON : liste des joueurs, TPS, expulsion, whitelist, opérateurs, annonces
- Prise en charge de Palworld, dont les annonces passent par son API REST locale, le RCON tronquant les messages aux espaces
Stack Technique
Technologies utilisées
Typescript
Node.js
Discord.js
Docker
Docker Compose
API Docker
RCON
Linux
Galerie
Aperçus du projet