# QuakeJS

QuakeJS is a self-hosted Docker server that runs a JavaScript port of ioquake3, letting homelabbers host browser-based multiplayer matches. It is open source and self-hosted, installable on Unraid and Docker Hub.

Canonical page: https://ourlocalhost.com/app/884/quakejs

## Description

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.

## Health score

63/100 (Good), based on 4 of 4 factors.
- Maintained: 79 (last commit 21 days ago)
- Popular: 48 (241 GitHub stars)
- Easy to install: 35 (1 install platform, install notes, Docker image)
- Light to run: 80 (1 GB minimum RAM, runs on ARM)

## Links

- Unraid: https://ca.unraid.net/apps/quakejs-0r97g7h00c7h29?q=quakejs
- Docker Hub: https://hub.docker.com/r/treyyoder/quakejs/
- Documentation: https://youtu.be/2VnQxxn00jU?t=121

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

---
Source: Our Local Host (https://ourlocalhost.com/app/884/quakejs), the self-hosted and open-source app directory.
