Comprehensive Feature List
tgstation-server is a DreamMaker server managment suite. It includes all the following features
- Standalone server with OpenAPI 3.0 defined HTTP REST API
- Web based client included
- Secure user authentication, management, and permissions system
- Support for using Windows accounts as logins
- OAuth 2.0 support with several providers
- InvisionCommunity
- /tg/ Forums
- Discord
- GitHub
- Keycloak
- Long running operation support via the jobs subsystem with error handling and stage reporting
- Logging system with configurable levels of verbosity
- Logs can be downloaded via the API
- Supports Elasticsearch ingesting
- Able to self update with user input
- Updates are sourced from our (or anyone else's if configured to do so) GitHub releases or uploaded directly by the user.
- Can also self update using official installation packages
- Able to shutdown and restart without interrupting DreamDaemon processes
- Windows service integration with service commands
- SystemD integration with notify-reload support
- Swarm system to coordinate servers across systems
- Database backend supporting several providers
- Microsoft SQL Server
- MySQL/MariaDB
- PostgresSQL
- SQLite
- Instances: Managing multiple sets of the below features seperately on the same machine
- Git repository managment
- Cloning
- Checking out SHAs and references
- Local Merging
- Hard resetting to references
- Merging GitHub pull requests locally, optionally commenting on them
- Optionally pushing commits for GitHub visibility
- Can be deleted and changed to a different origin
- BYOND version management
- Downloading and installing a given BYOND version
- Includes DirectX installation on Windows and proper handling of POSIX shared libraries
- Supporting any amount of installed versions
- Cleaning the BYOND cache
- Uploading a custom version .zip
- Code Deployment
- Compiles git code with DreamMaker and the active BYOND version
- Validates interop with the compiled binary
- Can be scheduled to pull the repository and build on a given interval
- Test merge commenting support for GitHub and GitLab
- GitHub Deployment Environments support
- The Watchdog, a DreamDaemon uptime monitor
- Automatically restarts the server when crashed until told to stop
- "Health Check" system for checking DreamDaemon isn't hung
- Seamless automatic application of new deployments on /world/Reboot
- Automatic startup at server boot time
- Automatically handles Windows prompts related to trusted mode
- TGS restarts/updates do not interrupt the DreamDaemon process
- Raises process priority of DreamDaemon for increased performance
- Support for logging DreamDaemon output
- Support for the
-profile
command line option
- Safe session recovery from TGS crashes
- Chat System
- Support multiple chat bots per instance. Current providers:
- Discord
- Supports rich embeds created from DM code and when deployments occur
- IRC
- Supports several authentication types
- Bots come out of the box with some basic commands like showing the server revision
- Support different chat channel types & tags for use in DM code
- Configuration system
- Allows specifying files/directories to be permanently symlinked with active game code
- Support for scripts that run on certain events. e.g. Before/after compiling
- Allows including arbitrary .dm code in compilations
- ACL support with Windows based logins
- DMAPI, DM code interop
- Provides metadata such as the current TGS version, git revision, active pull requests, security level
- Provides API for responding to TGS events (compile, update, etc)
- Provides API for sending chat bot messages
- Provides API for implementing chat bot commands in DM code
- Gives the ability to restart the DreamDaemon process from DM code
- Functions with all 3 DreamDaemon security levels
- Provides notifications of TGS side events
- Allows specifying the .dmb's minimum required security level
- Broadcast messages to clients