Skip to content

treyyoder/quakejs-docker

Repository files navigation

logo

quakejs-docker

Docker Image CI

Fully local and Dockerized QuakeJS server. This project bundles assets and server binaries so gameplay does not depend on content.quakejs.com.

Quick Start (Docker Compose)

From the repository root:

docker compose up --build -d

Then open:

http://localhost:8080

To stop:

docker compose down

Quick Start (Docker Run)

Build locally:

docker build -t treyyoder/quakejs:latest .

Run:

docker run -d --name quakejs -e HTTP_PORT=8080 -p 8080:80 -p 27960:27960 treyyoder/quakejs:latest

Configuration

Non-Docker Testing

You can run this project without Docker by reproducing the container steps:

  1. Clone https://github.com/nerosketch/quakejs and run npm install.
  2. Copy server.cfg into both quakejs/base/baseq3/server.cfg and quakejs/base/cpma/server.cfg.
  3. Copy include/ioq3ded/ioq3ded.fixed.js to quakejs/build/ioq3ded.js.
  4. Copy include/assets into quakejs/html/assets.
  5. Update quakejs/html/index.html host/port in the same way entrypoint.sh does.
  6. Serve quakejs/html on your desired HTTP port and run:
node build/ioq3ded.js +set fs_cdn localhost:8080 +set fs_game baseq3 +set dedicated 1 +exec server.cfg

Notes

  • This repo targets current Docker Compose syntax (no compose file version key).
  • The container installs Node 22 by default (configurable via Docker build argument NODE_MAJOR).
  • Port 27960 is TCP because QuakeJS browser clients connect to the game server over WebSockets.

Credits

Thanks to begleysm and their QuakeJS fork/documentation:

About

Dockerized quakejs server

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors