Run Your Own Q3JS Server
You can host your own Quake III Arena server for Q3JS using the official Docker image. The dedicated server behaves the same as the original ioq3ded executable, but wrapped in a convenient, ready-to-run container.
1. Prepare Your Directory
Create or enter a directory that contains a baseq3 folder. The server must have access to this folder because that’s where all game data, configs, and map files live.
mkdir my-q3-server cd my-q3-server # make sure this exists: ls baseq3/
2. Run the Server
Launch your server with Docker:
docker run \ -p 27961:27961 \ -p 27960:27960/udp \ -v $(pwd)/baseq3:/server/baseq3 \ lukaklacar/q3js-server \ +map q3dm17
If you plan to run your own dedicated server and make it visible to players outside your local network, ensure that the required ports are forwarded on your router. Quake III Arena servers typically use UDP 27960 for game traffic and your WebSocket-UDP proxy listens on port 27961. Both must be open and forwarded to the machine running your server for others to see and connect to it.
3. How This Command Works
- Ports:
27960/udpis the Quake game port.27961is the WebSocket-UDP proxy port used by Q3JS. - Volume mount:
-v $(pwd)/baseq3:/server/baseq3makes your localbaseq3directory available inside the container. - Dedicated server behavior:After startup, the process behaves exactly like the classic
ioq3dedserver. Any+setor+mapparameters work the same way. - Map loading:The example starts on
q3dm17, but you can choose any available map.
4. Confirming the Server Runs
Once the container starts, your server will appear on the Q3JS home page as long as it is configured with the correct master server settings (included automatically in this Docker image).
5. File Requirements
Only official Quake III demo files or community-created assets are allowed. Retail files are not included and cannot be distributed.