morgoth
A source dedicated server manager
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 tosystem
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