Dockerfiles for ioquake3 dedicated server. forked from Krauskopf's.
Edit the docker-compose.yml for your setup.
For the server to run, you have to copy all .pk3
files from the baseq3
folder in your game directory into the folder baseq3
in the volume quake3-data
. Note, that the pak0.pk3
is not distributed with ioquake, but has to be taken from the original disk.
docker cp *.pk3 quake3-data:/baseq3/
You have to also provide a server configuration file in the baseq3
folder of the volume. To match the compose file from above, name it server.cfg
. There are many tutorials for this around in the web. Here is only a short template:
// --- basic stuff ---
seta rconPassword "change me" // remote console admin password
seta r_smp "0" // 0 = single cpu, 1 = multi processing
// --- banner stuff ---
seta sv_hostname "change me" // how the server shows up in q3a game browser
seta g_motd "change me" // message of the day, shown on client connect
// --- clients and slots ---
g_password "change me" // server password for clients who try to connect
g_needpass "0" // whether the password is enabled / needed to connect
seta sv_maxClients "16" // max players allowed on server, includes spectators
seta sv_privateClients "2" // reserved slots for players who know the private password
seta sv_privatePassword "nuklear" // private slot password
seta g_syncronousClients "0" // whether clients are allowed to record demos
seta g_allowvote "1" // map - map restart - kick - g_gametype
// --- weapons ---
seta g_quadfactor "3" // quad damage multiplier, default = 3
seta g_weaponrespawn "5" // weapon respawn time in secs, default = 5
seta g_friendlyfire "1" // whether you can do damage to your team members
seta g_teamAutoJoin "0" // whether players are automatically added to a team
seta g_teamForceBalance "0" // whether teams are auto-balanced by the server
seta g_forcerespawn "0" // time after which players are forced to respawn, 0 = never
// --- bots ---
seta bot_enable "1" // whether bots are allowed on the server
seta bot_minplayers "0" // minimum players number, filled up with bots if fewer
seta bot_nochat "1" // whether bots are allowed to chat
// --- game ---
seta g_gametype "0" // gametype (0 = ffa, 1 = tourney, 2 = ffa, 3 = tdm, 4 = ctf)
seta timelimit 15
seta fraglimit 25
seta g_inactivity 3000
set g_warmup "10"
map q3dm16 // start map
Copy to the volume:
docker cp server.cfg quake3-data:/baseq3/
Thanks to jberrenberg/quake3 for the initial build script.