/morgoth

Source dedicated server manager

Primary LanguageC++GNU General Public License v3.0GPL-3.0


morgoth

A source dedicated server manager

build status status: experimental

Features

  • Start, stop and show status of any game server with one command
  • Extend functionality by writing plug-ins
  • Access your servers via anna API and ando front-end

Dependencies

  • Qt (>= 5.10)
  • CMake (>= 3.10)
  • systemd
  • DBus

Installation

# Clone this repository
$ git clone https://github.com/melkortf/morgoth

# Create build directory
$ mkdir morgoth/build && cd morgoth/build

# Configure project
$ cmake ..

# Build project
$ make && make test

# Install
$ make install

Configuration

The configuration file is installed in /etc/morgoth.conf. Available options are:

  • dbus specifies which bus should morgoth bind to. Leave it set to system if you wish to use morgoth as a daemon;
  • database defines the location of SQlite database file;
  • user specifies the user that will own all the running game server instances. It is adviced against running source game as a root.

You also need to create the user for the last configuration option:

$ useradd -r -U morgoth

Usage

# Start morgoth daemon
$ systemctl start morgoth

# Add your server installation
$ morgothctl add my-fancy-server /home/tf2/servers/fancy

# Make sure your server is added
$ morgothctl list

# Adjust your server launch arguments
$ morgothctl config my-fancy-server

# Start the server
$ morgothctl start my-fancy-server

# Verify your server started successfully
$ morgothctl status my-fancy-server

TODO

There are many TODO as of now, as the project is in an early development phase. Apart from lots of integration tests, there are:

  • add org.morgoth.Server.displayName config option for ando
  • plugins: add plugin dependency system
  • plugins: implement server-updater plugin
  • plugins: implement iptables plugin
  • morgothctl: add restart command