Zander is a Doom server manager.
- 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
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.
Install from the AUR (zander-bin) or install a pre-built pacman package for your architecture from the releases page.
Download the current .deb
release for your architecture and install using dpkg
.
https://gitlab.node-3.net/zander/zander/-/releases
Download the current .rpm
release for your architecture and install using rpm
.
https://gitlab.node-3.net/zander/zander/-/releases
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 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 exampledoom2.toml
file there.
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.
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.
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.