Skip to content

Justus0405/ioq3-ded-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ioq3-ded-docker

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.

Features

Compiled for your host machine.

The image builds ioq3-ded on your system for optimal performance.

Declarative configuration.

All server settings (map, downloads, memory, hostname, bots, etc.) can be set cleanly inside docker-compose.yml.

Small image size.

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.

Getting Started

  1. Clone the repository:
git clone --depth 1 https://github.com/Justus0405/ioq3-ded-docker.git
  1. Navigate to the directory:
cd ioq3-ded-docker
  1. Create the baseq3 directory:
mkdir baseq3
  1. Copy your pk3 files to the baseq3 directory:
cp -r ~/.config/Quake3/baseq3/ ./
  1. Build and run with docker:
docker-compose up -d --build

FAQ

How can I access the console?

  • Simply do docker attach ioq3-ded and type your commands
  • For eg. map Q3DM1

Tip

To exit the console without stopping the server, press: Ctrl + p, Ctrl + q

Where do I place mods or custom maps?

Place all .pk3 files into:

baseq3/

These will be mounted into the container automatically.

How do I enable bots?

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 q3dm17

How do I restart the server?

docker-compose restart

Maps

  • Q3DM17 (Default)
  • Q3DM1
  • Q3DM14
  • Q3TOURNEY6
  • Q3DM6
  • Q3DM15
  • Q3DM10
  • Q3TOURNEY2

Just switch the map via console or add it in your compose file

Declarative Server Configuration

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 q3dm17

Example for q3config_server.cfg settings:

environment:
  TZ: "Europe/Berlin"
  sv_hostname: "My Quake Server"

Copyright ยฉ 2025-present Justus0405