À propos du projet

tgstation-server (TGS) est une boîte à outils pour gérer des serveurs de jeu DreamMaker en production, principalement ceux exécutant des bases de code Space Station 13. Il est écrit en C# et distribué sous forme de service Windows, démon console, paquet Linux, flake Nix ou conteneur Docker. Capacités principales décrites dans le README : - Mettre à jour un serveur en cours d'exécution sans l'arrêter ; les changements prennent effet au prochain redémarrage du serveur. - Démarrer le serveur et le redémarrer automatiquement en cas de plantage. - Gérer le code et les fichiers de jeu des instances. - Fusionner localement des pull requests GitHub pour des déploiements de test. - Panneau de contrôle web servi depuis le serveur. - Point de terminaison de métriques Prometheus et ingestion optionnelle des journaux dans Elasticsearch. - Connexion OAuth et authentification par passerelle pour GitHub, Discord et InvisionCommunity. - Un système de swarm pour coordonner plusieurs serveurs TGS autour d'une base de données partagée. Stockage et configuration : - Nécessite une base de données relationnelle. SQLite est inclus mais non recommandé à grande échelle ; les bases de données autonomes prises en charge sont MariaDB, PostgreSQL, Microsoft SQL Server et MySQL. - Configuration via appsettings.Production.yml, variables d'environnement ou arguments de ligne de commande. Un assistant de configuration s'exécute au premier lancement. - Les paramètres notables incluent les limites d'instances/utilisateurs, les chemins d'instance valides, le jeton d'accès GitHub, le répertoire et le niveau des journaux, l'URL du point de terminaison Kestrel et les détails de connexion à la base de données. Options de déploiement : - Programme d'installation Windows, paquet winget ou zip manuel (ServerService ou ServerConsole). - Dépôt apt Ubuntu/Debian en une ligne, flake Nix, installation manuelle avec unité SystemD ou image Docker. - La prise en charge d'OpenDream nécessite l'installation séparée du SDK .NET. Cette présentation reflète uniquement ce que documente le README ; aucune affirmation de performance ou de classement n'est faite.