A CLI tool for deploying dedicated game servers as systemd units (daemons).
This repo is for gsd-cli version 2.x. This version of the cli is written in CoffeeScript and can be downloaded as a global module from npm.
gsd-cli installs dedicated server as user daemons managed by systemd, a Linux system & service manager.
You can interact with systemd services using the systemctl
and journalctl
commands. Since the cli installs dedicated servers as user daemons, always include the --user
flag when interacting with systemd.
For example: systemctl --user restart minecraft
.
You can read the log files for a given server using the journalctl
command. For example, to follow a Minecraft server's log:
systemctl --user -fu minecraft
All game servers are created in /home/your_user/whatever-server
. For example, a minecraft server would look like this:
/home/egee/minecraft-server
.
The dedicated servers themselves are spawned from a shell launch.sh
script script located in the dedicated server's install path. This file is created by the cli from the config file passed to it during install time and is safe to edit after installing a server. For example, the launch script for a Rust server is located:
/home/egee/rust-server/launch.sh
User-level systemd unit files are located in ~/.config/systemd/user
. You can specify the amount of system resources available to the server by adding properties to the .service
file if you desire.
Currently supported game servers:
- minecraft
- rust
- 7 days to die[sdtd]
- garry's mod[gmod]
- team fortress 2[tf2]
Usage
$ npm install -g gsd-cli
$ gsd-cli COMMAND
running command...
$ gsd-cli (-v|--version|version)
gsd-cli/2.1.0 linux-x64 node-v12.18.0
$ gsd-cli --help [COMMAND]
USAGE
$ gsd-cli COMMAND
...
Commands
gsd-cli help [COMMAND]
gsd-cli install
gsd-cli help [COMMAND]
display help for gsd-cli
USAGE
$ gsd-cli help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help
gsd-cli install
Installs a dedicated game server using a config file or a name with default settings.
USAGE
$ gsd-cli install
OPTIONS
-d, --dryrun test installing a server without actually installing it
-n, --name=name name of the server to install
See code: src/commands/install.js