Skip to content

frozenfoxx/docker-zandronum

Repository files navigation

docker-zandronum

Actions Status

A Docker container that runs Zandronum.

Docker Hub: https://hub.docker.com/r/frozenfoxx/zandronum/

How to Build

To just build the default image, input the following:

git clone https://github.com/frozenfoxx/docker-zandronum.git
cd docker-zandronum
docker build -t frozenfoxx/zandronum:latest .

If you wish to build an alternate image, copy the alternate Dockerfile with the paramters to you wish to use to Dockerfile and issue the build command.

How to Use this Image

Quickstart

The following will run the latest Zandronum client with a default configuration.

docker run -it \
  --rm \
  -p 8080:8080 \
  -v /Path/To/WADs/:/wads:ro \
  --name=zandronum \
  frozenfoxx/zandronum:latest

Then open http://localhost:8080/vnc_lite.html in your browser.

Adding Options

The entrypoint will pass all additional options to the Zandronum executable. To mount an additional WAD file, for instance:

docker run -it \
  --rm \
  -p 8080:8080 \
  -v /Path/To/WADs/:/wads:ro \
  -v /Path/To/Other/WADs:/tmp/other_wads:ro \
  --name=zandronum \
  frozenfoxx/zandronum:latest \
  /tmp/other_wads/savage.wad \
  +connect dm.zserver.net

Multiplay

A Multiplay compatible version of this container is also available. For deployment to Multiplay, you will need to follow their Container guildelines.

  • Copy your WAD files into wads.
  • Build the container (docker build -t localhost/zandronum:multiplay -f Dockerfile.multiplay.novnc .).
  • Authenticate, tag, and push to Multiplay in alignment with their documentation.
  • Under Build Configuration/Launch Parameters, input --displayport $$port$$ --novncport $$port$$ --rfbport $$port$$.

Configuration

Controls

The default control scheme has been modified for easier use with noVNC. Since the mouse cannot be captured exclusively, keyboard is recommended.

  • Fire: Up Arrow
  • Forward: W
  • Backward: S
  • Strafe Left: A
  • Strafe Right: D
  • Turn Left: Left Arrow
  • Turn Right: Right Arrow
  • Use: E
  • Jump: Space
  • Crouch: Control

Environment Variables

  • DISPLAY_PORT: allows modification of the virtual display's port (default: 0).
  • DISPLAY_HEIGHT: allows modification of the virtual display's height (default: 720).
  • DISPLAY_WIDTH: allows modification of the virtual display's width (default: 1280).
  • NOVNC_PORT: allows modification of the listening port for noVNC (default: 8080).
  • RFB_PORT: remote framebuffer port (default: 5900).

Parameters

  • --displayport [port]: port to listen on for display, overrides DISPLAY_PORT.
  • --novncport [port]: port to listen on for noVNC, overrides NOVNC_PORT.
  • --rfbport [port]: port to listen on for RFB, overrides RFB_PORT.