G4meServerCtrl

 - Web interface to control & manage docker containers

Project Summary

2023BETA

A web interface to manage multiple game servers (running as docker containers) with many helpful features to improve and speed up administration.

Project Details

  • Monorepo of two "apps". One Angular frontend and one NestJs backend.
  • Build and deployment through GitLab and running on a Kubernetes cluster.
  • Noteworthy features
    • Multi user / role permission system via isomorphic authorization logic (CASL)
    • REST API for automation and monitoring
    • Control of docker container
    • Container performance and other information
    • Container log realtime streaming
    • Built in RCON Manager
    • Built in Mod Manager for SteamWorkshop
    • Built in File Viewer and Editor

Project Information

G4meServerCtrl (Game Server Control) started as a prototype and proof of concept to control multiple game servers which are running as docker containers on a bare metal server.

It quickly became a tool used by a few server administrator to handle management and administration. Its features allowed it to improve the workflow of handling updates and configuration and saved a lot of time.

This was an exciting project, because it was the first one where I worked with PrismaJS instead of TypeORM and also used CASL for an advanced permission system.

REST API

Besides offering it's own API, it interacts with the (local) DockerAPI and SteamWorkshop API.

Web interface

Web interface with permission system for multi user.

Docker

The backend communicates directly with the Docker API.

Control Server

The heart of G4meServerCtrl is to (you guessed it!) control game servers. The backend communicates via the docker api and controls the container.

Container Stats

With the docker API, additional information are bulled like container runtime performance statistics.

Container Information

Also container information are display, to quickly debug / review environment variables or get information when the container was started.

Container Logs

Of course also the container logs can be viewed (live streamed via websockets to the frontend) and supports basic highlighting (debug, error, warning, critical, ...).

RCON Manager

If configured and available, it even can connect to the RCON Server to further control and interact through the web interface with the game server. Only a tiny bit of configuration and a RCON command definition list is needed.
The interaction is streamed via websockets and the commands support autocomplete / select and further parameters (if defined)

Mod Manager

If configured and available, mods can be managed through the web interface. Currently only Steam Workshop through it's API is supported.

Mod List

The list of installed mods is displayed with further links to steam workshop (in case of troubleshooting, etc.)

Server files

Super Admins can configure access (read and / or write) to certain server files. This allows users with permission to view, download or update the files.
This is for example very helpful to update the banlist or adminlist quickly.

Edit File

If a file is writeable and supported, it can be directly updated through the web interface. It is using a web version of VisualStudio (monaco) with support for file syntax highlighting.