QuakeJS

QuakeJS is a self-hosted Docker server that runs a JavaScript port of ioquake3, letting homelabbers host browser-based multiplayer matches.

  • Game Servers
  • Other
QuakeJS is a self-hosted Docker server that runs a JavaScript port of ioquake3, letting homelabbers host browser-based multiplayer matches.

Platform availability

Available on 1 of 9 platforms

  • Unraid
  • TrueNAS (not listed)
  • Umbrel (not listed)
  • ZimaOS (not listed)
  • Proxmox (not listed)
  • Helm (not listed)
  • Mac (not listed)
  • Windows (not listed)
  • Linux (not listed)

Health score?A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). When the source code has been checked, a fifth factor, security check (20%: automated scan for committed secrets, unsafe desktop-app settings, known-vulnerable dependencies and project hygiene; any serious finding caps it at 20), is added. Factors without data are left out and the rest are rescaled.

63/100 Good

Maintained
79last commit 13 days ago
Popular
48241 GitHub stars
Easy to install
351 install platform, install notes, Docker image
Light to run
801 GB minimum RAM, runs on ARM

Availability: platform listings confirmed today, links checked 15 days ago

GitHub stars
241
Open issues
0
Last commit
2026-10-01
Latest release
v1.0
Activity
declining

Checked 7 days ago - source: GitHub (treyyoder/quakejs-docker)

Resources & Compatibility

Minimum requirements: 1 GB RAM, 1 GB disk. ARM (e.g. Raspberry Pi) is supported.

Checked 16 days ago - source: Docker Hub image tags and published docs

First-install notes

  • Single published port Publish one host port to container port 80, such as 8080:80, because the web page, assets, console, and WebSocket traffic all use that port. source

Fetched 7 days ago - each note links to its source

Alternatives

No alternatives collected yet.

Common questions

How do I find the admin console password after the first container start?

Unless you set ADMIN_PASSWORD, the console generates one and prints it once to the container log. Check the container logs for the generated password, then sign in on the Admin login page.

What reverse proxy settings are needed for players to join and for admin actions to use real IPs?

Forward the single published port with websockets enabled and force HTTPS at the proxy. Set TRUSTED_PROXIES to the proxy address so kicks and bans see players' real addresses.

What state persists across container recreation, and how do I reset it?

Two volumes persist: quakejs-assets for maps and paks, and quakejs-state for password, settings, rotation, leaderboard, bans, audit trail, crash notes, and automatic backups. Recreating the container keeps them, while deleting the volumes resets the server.

Can the server use my own Quake 3 assets instead of the demo content?

The image ships demo content only. If you own Quake III Arena, upload pak0.pk3 from the console's Maps tab or point EXTRA_PAKS at a URL you control to get stock maps, bots, and retail textures.

How do I update the QuakeJS Docker server?

Pull the new image and recreate the container. The existing volumes carry over the installed assets and state.

Answers sourced from github.com

Community

Collected 11 days ago - public community threads