Zander
Zander is a Doom server manager.
Features
- Automatically restart crashed servers
- Collect metrics (prometheus and statsd are supported)
- Attach to a running server
- View and tail server logs
- Shell completion
- Hot reloading of server configurations
Installation
Using a pre-built package for your platform will install zander
at a system level. If you don't want to pollute your system, you can download a precompiled binary archive and install it to your $HOME
directory instead. This archive comes with example configuration that you can copy and modify for your use case.
Arch Linux
Install from the AUR (zander-bin) or install a pre-built pacman package for your architecture from the releases page.
Debian/Ubuntu
Download the current .deb
release for your architecture and install using dpkg
.
https://gitlab.node-3.net/zander/zander/-/releases
RHEL/Fedora
Download the current .rpm
release for your architecture and install using rpm
.
https://gitlab.node-3.net/zander/zander/-/releases
Pre-compiled Binaries
You can find pre-compiled binaries on the releases page.
Simply extract the archive and place the zander
binary in your $PATH
. There are also other files which are example
configurations. Refer to the configuration section for more information.
Configuration
Configuration for zander is stored in $XDG_CONFIG_HOME/zander
, which usually defaults to $HOME/.config
.
- Copy
zander.toml
to $XDG_CONFIG_HOME/zander/zander.toml
. You should go through the example file and configure it for your system.
- Create a
servers
directory in $XDG_CONFIG_HOME/zander
and copy example doom2.toml
file there.
Install as a Systemd User Service
mkdir -p $HOME/.config/systemd/user
cp config/zander.service $HOME/.config/systemd/user
# Edit the ExecStart field in zander.service file to point to where you installed `zander`
systemctl --user daemon-reload
systemctl --user enable --now zander
sudo loginctl enable-linger
The Systemd service file can be found in this repository (.pkg/zander.service
) or in a pre-compiled binary archive found on the releases page.
Usage
Zander is split into two parts. One part is the service which is typically run as a Systemd service. The second part is the client which will attempt
to communicate with the service via a unix socket. This socket is located here $XDG_RUNTIME_DIR/zander.sock
by default. This value can overwritten by
setting the $ZANDER_SOCKET
environment variable or by setting the -s
/--socket
flag. Using the Zander client without a running service will
result in a connection error.
Contributing
Pull/merge requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
MIT