GithubHelp home page GithubHelp logo

millerhooks / docker-quakeworld Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zobees/docker-quakeworld

0.0 1.0 0.0 115.6 MB

A dockerized QuakeWorld server, which can be used either as-is or as a base for other QuakeWorld servers.

Makefile 10.05% Shell 23.66% Go 16.26% Dockerfile 10.99% C 39.04%

docker-quakeworld's Introduction

quakeworld

A dockerized QuakeWorld server, which can be used either as-is or as a base for other QuakeWorld servers.

Uses some files from the nQuake server distribution on top of the zobees/mvdsv image.

Quick Start

  1. Create a volume containing id1/pak1.pak from your original Quake distribution or place it in a directory on your docker host accessible by the Docker daemon.
  2. Run the image, forwarding the appropriate ports and mounting the configuration volume or directory.

For example, using a host directory mount:

mkdir -p /usr/local/quakeworld/id1
cp -f path/to/id1/pak1.pak /usr/local/quakeworld/id1
docker run -p 27500:27500 -p 27500:27500/udp \
           -v /usr/local/quakeworld:/qw-mount \
           zobees/quakeworld

Configuring

There are three ways to configure the server:

  • A minimal amount of configuration can be supplied via environment variables.
  • You can supply volume of files that will be copied into the qw directory before the server is started.
  • You can extend the image and add/override files directly.

At the very least you need to supply your pak1.pak from your original Quake distribution using the volume configuration method described below.

Configuring via environment

The following environment variables are available to configure the image:

Name (default) Default Description
PORT 27500 The port mvdsv should bind to (TCP and UDP)
QW_NAME QuakeWorld Server The visible name of the server
QW_ADMIN Nobody The name of the server admin
QW_URL (none) The server info url
QW_GAMENAME qw The server mod to use
QW_PASSWORD (none) The password required to join the server
QW_RCON_PASSWORD (none) The server remote console password
QW_ADMIN_PASSWORD (none) The server admin password
QW_MAX_CLIENTS 16 The maximum number of players allowed
QW_MAX_SPECTATORS 2 The maximum number of spectators allowed
QW_TIMELIMIT 35 The time limit per round
QW_FRAGLIMIT 150 The maximum number of frags per round
QW_MAP dm3 The start map
QW_MAPLIST (none) A delimited list of maps to cycle

NOTE: You will still need to supply pak1.pak via the volume configuration method below!

Configuring via volume

A volume is exported at /qw-mount which if non-empty will be recursively copied into the qw directory. This is required to install pak1.pak from your original Quake distribution.

Note that you can use Go templates in your configuration files and the appropriate values will be swapped out when your configuration is copied to the qw directory. For example {.Env.PORT} will be substituted with the PORT environment variable.

You can also completely override the default configuration should you so desire by creating a server.cfg in your volume. Note that this will render all environment variable configuration ineffective unless you supply it yourself. You can use the default configuration template here as a starting point.

Extending the image

Just like any other Docker image, you can extend zobees/quakeworld in your own Dockerfile and add your own configuration as you desire.

Developing

The github repository for this image contains a builder image that compiles and assembles the image contents, and an associated Makefile to make things a bit easier.

docker-quakeworld's People

Contributors

cliffrowley avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.