About this project

tgstation-server (TGS) is a toolset for managing production DreamMaker game servers, primarily those running Space Station 13 codebases. It is written in C# and distributed as a Windows service, console daemon, Linux package, Nix flake, or Docker container. Core capabilities described in the README: - Update a running server without stopping it; changes take effect on the next server reboot. - Start the server and automatically restart it if it crashes. - Manage code and game files for instances. - Locally merge GitHub pull requests for test deployments. - Web-based control panel served from the server. - Prometheus metrics endpoint and optional Elasticsearch log ingestion. - OAuth login and gateway authentication for GitHub, Discord, and InvisionCommunity. - A swarm system for coordinating multiple TGS servers against a shared database. Storage and configuration: - Requires a relational database. SQLite is bundled but not recommended for scale; supported standalone databases are MariaDB, PostgreSQL, Microsoft SQL Server, and MySQL. - Configuration via appsettings.Production.yml, environment variables, or command-line arguments. A setup wizard runs on first launch. - Notable settings include instance/user limits, valid instance paths, GitHub access token, log directory and level, Kestrel endpoint URL, and database connection details. Deployment options: - Windows installer, winget package, or manual zip (ServerService or ServerConsole). - Ubuntu/Debian apt repository one-liner, Nix flake, manual setup with SystemD unit, or Docker image. - OpenDream support requires the .NET SDK to be installed separately. This overview reflects only what the README documents; no performance or ranking claims are made.