Dahlgren / arma-server-web-admin

Web based server manager for Arma
MIT License
125 stars 47 forks source link
arma arma-servers arma2 arma3 game-servers

Arma Server Admin

Build Status

A simple to use web admin panel for Arma servers.

Screenshots

Features

Requirements

Supported Platforms

Supported Games

Config

Key Description
game Which game server to launch, see above
path Folder path to game server
port Web port to use
host IP or Hostname to listen on
type Which kind of server to use, can be 'linux', 'windows' or 'wine'
additionalConfigurationOptions Additional configuration options appended to server.cfg file
parameters Extra startup parameters added to servers and headless clients
serverMods Mods that always and only will be used by the game servers
auth If both username and password is set, HTTP Basic Auth will be used
prefix Text prepended to all game servers name
suffix Text appended to all game servers name

How to Use

  1. Copy config.js.example to config.js

  2. Change values in config.js as described above or in the file

  3. Install all dependencies with npm install

  4. Launch the web UI with npm start or install as a Windows Service with npm run install-windows-service

System Configuration

Windows

Make sure to disable Windows Error Reporting or server control will be stuck on a server crash.

Install as a Windows Service with npm run install-windows-service.

Remove previously installed Windows Service with npm run uninstall-windows-service.

Wine

Make sure to disable Wine GUI Crash Dialog or server control will be stuck on a server crash. This is easiest solved using winetricks by running winetricks nocrashdialog. It can also be disabled manually. Read more at Wine FAQ.

Docker

Example

To host an Arma 3 x64 server with an existing Arma 3 Server install in subfolder arma3 with persisted profiles in profiles and shared network with host,

mkdir -p arma3 profiles
touch servers.json
docker run \
  --network=host \
  --env GAME_TYPE=arma3_x64 \
  --env GAME_PATH=/arma3 \
  --volume $PWD/arma3:/arma3 \
  --volume $PWD/servers.json:/app/servers.json \
  --volume $PWD/profiles:"/root/.local/share/Arma 3 - Other Profiles" \
  dahlgren/arma-server-web-admin

Required setup

Mount a preinstalled Arma server folder to the container, currently only the linux server is supported. Set GAME_TYPE to your desired arma server, for example --env GAME_TYPE=arma3 or --env GAME_TYPE=arma3_x64. Set GAME_PATH to your mounted volume, for example --env GAME_PATH=/arma3 and --volume $PWD/arma3:/arma3.

Networking

Host preferably needs to share network with the container or all game ports used will need to be forwarded to the container. Use --network=host to use same network as the host machine.

Web Admin UI is available at port 3000. If you use --network=host you can reach the web ui at http://localhost:3000 by default.

Persistence

Servers

Mount a file at /app/servers.json to persist the servers config. For example --volume $PWD/servers.json:/app/servers.json to use a file named servers.json in current folder as persistent servers config file.

Profiles

If you need to persist the server profiles such as vars file make sure to mount a volume. For Arma 3 the default profiles directory will be located at /root/.local/share/Arma 3 - Other Profiles

Environment Variables

Key Description
GAME_PATH Required. Absolute folder path to game server in docker container
GAME_TYPE Required. Type of game server, see above
AUTH_USERNAME Username used for HTTP Basic Auth
AUTH_PASSWORD Password used for HTTP Basic Auth
SERVER_ADMINS Steam IDs that should be set as admins
SERVER_ADDITIONAL_CONFIG Additional content to add into server.cfg
SERVER_MODS Mods to be loaded as server side only mods
SERVER_PARAMETERS Additional parameters to pass on server launch
SERVER_PREFIX Prefix on all server names
SERVER_SUFFIX Suffix on all server names