Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

q2master

This project is a custom implementation of a Quake 2 master server written in Go.

Features

Backward compatible master functionality; this should work with all Quake 2 servers. Player and general server info is fetched peridocially for display in the web interface.

An integrated website for viewing servers/players on any device. The website is not meant to be directly externally exposed, instead it should be proxied by something like nginx that can handle TLS.

Command line arguments

All configuration options for this server are handled through the command line flags:

Flag Default Value Explanation
port 27900 The listen port for Quake 2 servers.
addr "0.0.0.0" The IP address to listen on for Quake 2 servers. Leave this alone unless you need to listen on a specific IP.
fg false Run in the foreground. All output will go to the console instead of the log file.
logfile "master.log" The file to log all output to.
webport 3333 The port to listen on for website requests.
webaddr "0.0.0.0" The IP address to listen on for website requests. The default will listen on all addresses.
geoipfile "" Specify a custom geoip database file. An official geoip database is embedded into the release, this flag isn't needed in more cases.

Embedded Asssets

All required assets (website templates, flag images, GeoIP database) are embedded into the compiled binary. This allows for a single file release that is completely portable. The downside of this setup is binaries need to be recompiled when any of these embedded assets change.

Running from source

$ go run . -fg

Building a binary from source

# Target architecture is the same:
$ go build .

# Building a windows (64bit) binary on linux:
$ GOOS=windows GOARCH=amd64 go build -o q2master.exe . 

About

A master server for Quake 2 written in Go

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages