Manual

Run Your Own Server

Boot a standard Quake III dedicated server with the Q3JS proxy, expose the required ports, and confirm master-server visibility.

1. Create Server Folder

Start with an empty directory. You will place a baseq3 folder inside it next.

mkdir my-q3-server
cd my-q3-server
2. Add Baseq3 Files

Copy a baseq3 directory into my-q3-server. This contains assets, configs, and maps.

Use only official demo files or community-created content. Do not host redistributable retail files.

3. Start Container

Run the container from inside my-q3-server.

docker run \
  -p 27961:27961 \
  -p 27960:27960/udp \
  -v "$(pwd)/baseq3":/server/baseq3 \
  lukaklacar/q3js-server \
  +map q3dm17
4. Open Ports

Forward both ports on your router to the host running the container.

27960/udp handles Quake III game traffic.

27961/tcp handles the browser proxy used by Q3JS.

If these ports stay closed, the server may work on LAN but remain invisible or unjoinable from the public internet.

Command Notes

Ports: -p 27960:27960/udp exposes the game server. -p 27961:27961 exposes the Q3JS proxy.

Volume: -v "$(pwd)/baseq3":/server/baseq3 mounts your local data directory.

Behavior: once started, the container behaves like a normal ioq3ded server. Standard +set and +map arguments still apply.

Map: replace q3dm17 with any installed map.

Verification

After startup, the server should appear on the Q3JS home page.

The Docker image already includes the correct master-server settings.

If it does not appear, the usual causes are missing files, the wrong mount path, or closed ports.

File Requirements

Only official Quake III demo files or community-created assets are allowed. Retail files are not included and cannot be distributed.