Giter Club home page Giter Club logo

quakelive-server-standards's Introduction

Quake Live server standards and Docker-based server framework

This repository is two in one. It is a community-driven collection of Quake Live server configurations which aims to evolve Quake Live in all its different aspects and at the same it is a Docker-based Quake Live server framework with which you can host as many Quake Live servers as you like.

Features

Overview

Community-driven Quake Live server standards

There are directories regarding the different aspects of the community-driven Quake Live server configurations.

  • configs: Contains variants of the server.cfg which is the place for technical cvars
  • factories: Contains factories which are a way to bind cvars to a certain gametype
  • mappools: Contains map pool definitions
  • minqlx-plugins: Contains all known minqlx plugins and carefully drafted sets of them for different contexts
  • workshop: Contains overviews of workshop items and sets of them for different purposes

All of these directories contain an _id directory in which the original id Software configuration resides. In the case of the minqlx plugins this directory is called _mino because the plugin extension was not created by id Software but by a guy named mino.

Furthermore there are two directories standard and evolved. The former one containing the carefully drafted and voted upon Quake Live server standards and the latter one containing evolved configurations which later on might be integrated into the standard.

In some cases there are also additional directories which are explained in the corresponding README.md files of these.

Docker-driven server framework

There is a directory _myservers which contains a docker-compose.yml which is the heart of the Dockerization. You will also find a connect.sh which allows you to connect to your Quake Live servers via the command line.

Apps

There is a directory apps which is a collection of all known Quake Live dedicated server related apps. These apps are more from a viewpoint of an admin as opposed to the viewpoint of a player. You will not find apps like custom Quake Live server browsers for example.

Docker

The directory docker contains all of the Docker images used for the Docker-based Quake Live server framework but also for all other apps collected in the apps directory.

Quickstart hosting servers

Here we give you instructions on how to start hosting servers real quick. You will have your Quake Live servers up and running in about 5 minutes, all of them using community developed standards providing the best experience for the players.

Installing

Install Git and clone this repository using git clone https://github.com/quakelive-server-standards/quakelive-server-standards.git. Install Docker https://docs.docker.com/engine/install/.

Configuring

Open the docker-compose.source.yml file in the _myservers directory. It contains reference server definitions for every game type. Copy those that you want into the docker-compose.yml file. If you want more than one server for a game type, copy the reference definition multiple times.

Here you can see the definition for a duel server.

duel1:
    image: quakeliveserverstandards/duel
    restart: always
    ports:
      - '27960:27960/udp' # game port
      - '27960:27960/tcp' # stats port
      - '28960:28960/tcp' # rcon port
    environment:
      - NET_PORT=27960
      - SV_HOSTNAME=QL Standard Duel Server #1
      - SV_TAGS=duel
    volumes:
      - './access.txt:/home/steam/ql/baseq3/access.txt'
      - './autoexec.cfg:/home/steam/ql/baseq3/autoexec.cfg'
      - '../configs/standard/server.cfg:/home/steam/ql/baseq3/server.cfg'
      - '../factories/standard/duel/duel.factories:/home/steam/ql/baseq3/scripts/duel.factories'
      - '../mappools/standard/duel/mappool.txt:/home/steam/ql/baseq3/mappool.txt'
      - '../minqlx-plugins/standard/duel:/home/steam/ql/minqlx-plugins'
      - '../workshop/standard/duel/workshop.txt:/home/steam/ql/baseq3/workshop.txt'
    depends_on: 
      - redis

Change the Docker service names like duel1 so that every name is unique.

Change the ports so that every server uses its own unique set. Every Quake Live dedicated server uses three of them. The game port which runs with UDP and starts at 27960, the stats port which most of the time is the same port as the game port but runs with TCP and the rcon port which is the game port plus 1000. To be quick we use exactly that scheme.

Adjust the ports in the ports section of the Docker Compose file and set the game port in the environment variable NET_PORT. Using the above mention scheme, the other two ports configured through the environment variables ZMQ_RCON_PORT and ZMQ_STATS_PORT will be set automatically.

Additionally, set unique names for your servers by setting the environment variable SV_HOSTNAME.

Running

To run your freshly defined server, open a terminal, cd into the _myservers directory and execute docker-compose up -d. Congratulations, you are now successfully hosting your own Quake Live servers.

What is next?

The next step is to start and understand how to configure a Quake Live server in all of its different aspects. Take a look into this README.md file to learn about everything.

Evolve Quake Live

Community-driven Quake Live server standards come to life through the participation of the community.

Contribute evolved Quake Live dedicated server configurations

Discuss what to transfer into the Quake Live server standards

Fix files

quakelive-server-standards's People

Contributors

beneiltis 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.