A minimal and optimized Docker image for building and hosting the ioq3 dedicated server. Designed to be small, fast, declarative, and easy to run anywhere.
The image builds ioq3-ded on your system for optimal performance.
All server settings (map, downloads, memory, hostname, bots, etc.) can be set cleanly inside docker-compose.yml.
Built with a multi-stage pipeline that separates build and runtime layers, removing all unnecessary dependencies and keeping the final image as minimal as possible.
- Clone the repository:
git clone --depth 1 https://github.com/Justus0405/ioq3-ded-docker.git- Navigate to the directory:
cd ioq3-ded-docker- Create the baseq3 directory:
mkdir baseq3- Copy your pk3 files to the baseq3 directory:
cp -r ~/.config/Quake3/baseq3/ ./- Build and run with docker:
docker-compose up -d --build- Simply do
docker attach ioq3-dedand type your commands - For eg.
map Q3DM1
Tip
To exit the console without stopping the server, press: Ctrl + p, Ctrl + q
Place all .pk3 files into:
baseq3/
These will be mounted into the container automatically.
You can do this declaratively:
command: >
+set dedicated 0
+set sv_allowDownload 1
+set com_hunkmegs 64
+set bot_enable 1
+set bot_minplayers 6
+map q3dm17docker-compose restart- Q3DM17 (Default)
- Q3DM1
- Q3DM14
- Q3TOURNEY6
- Q3DM6
- Q3DM15
- Q3DM10
- Q3TOURNEY2
Just switch the map via console or add it in your compose file
One advantage of this image is that you can set all options for q3config_server.cfg and the launch command directly in docker-compose.yml.
Example launch command:
command: >
+set dedicated 2
+set sv_allowDownload 1
+set com_hunkmegs 64
+set sv_hostname "My Quake Server"
+map q3dm17Example for q3config_server.cfg settings:
environment:
TZ: "Europe/Berlin"
sv_hostname: "My Quake Server"Copyright ยฉ 2025-present Justus0405