Our central server https://alterware.dev
Find a file
2025-11-29 18:25:37 +01:00
.github chore: update Premake5 2025-09-17 17:37:52 +02:00
deps Merge pull request #124 from alterware/dependabot/submodules/deps/GSL-543d0dd 2025-11-01 18:03:26 +01:00
src fix: copy va 2025-11-29 18:25:37 +01:00
.gitignore init 2023-05-26 16:09:29 +02:00
.gitmodules build: use GCC to compile & use alpine image for Docker (#88) 2024-06-04 18:48:54 +02:00
Dockerfile feat: arm64 Linux Docker image 2025-04-13 13:46:57 +02:00
LICENSE init 2023-05-26 16:09:29 +02:00
premake5.lua feat: arm64 Linux Docker image 2025-04-13 13:46:57 +02:00
README.md chore: update Premake5 2025-09-17 17:37:52 +02:00

build

AlterWare: Master Server

This is the master server our clients use. It is based on the DP Master Server (ID Tech) protocol

Usage

Run using Docker

docker run -p 20810:20810/udp -e AW_STATS_LOCATION=<UTF-8 C-string> alterware/master-server:latest

When setting the AW_STATS_LOCATION environment variable, you may want the container to write stats to a file or directory on the host system. In this case, you must mount a directory from the host into the container and ensure it has write permissions.

or run as a systemd service

[Unit]
Description=AlterWare Master Server
After=network.target

[Service]
Type=simple
ExecStart=<working dir>/alterware-master
WorkingDirectory=<working dir>
Environment="AW_STATS_LOCATION=/var/www/<domain name>/html/stats.json"
StandardOutput=null
Restart=on-failure
RestartSec=10
KillMode=process
User=<username>
Group=<group name>

[Install]
WantedBy=multi-user.target

Build

  • Install Premake5 and add it to your system PATH
  • Clone this repository using Git
  • Update the submodules using git submodule update --init --recursive
  • Run Premake with either of these two options premake5 vs2022 (Windows) or premake5 gmake (Linux/macOS)

IMPORTANT Requirements for Unix systems:

  • Compilation: Please use Clang as the preferred compiler
  • Dependencies: Ensure the LLVM C++ Standard library is installed
  • Alternative compilers: If you opt for a different compiler such as GCC, use the Mold linker
  • Customization: Modifications to the Premake5.lua script may be required
  • Platform support: Details regarding supported platforms are available in build.yml. Linux ARM64 should be supported out of the box even if it's not present in the CI scripts