- Notifications
You must be signed in to change notification settings - Fork23
Counter-Strike: Global Offensive (CS:GO) Dedicated Server with automated/manual updating and optional SourceMod and PugSetup/PracticeMode integrations
License
timche/docker-csgo
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Counter-Strike: Global Offensive (CS:GO) Dedicated Server with automated/manual updating and optionalSourceMod andPugSetup/PracticeMode integrations
Warning
This Docker image isn't maintained anymore since the release of Counter-Strike 2.
ℹ️Run your CS:GO server onHetzner Cloud for as low as €6.37/months with 2 vCPUs, 4 GB RAM, 40 GB storage and great performance (low sv/var)! Usemy referral link to receive€20 cloud credits for free as soon as you sign up!
- How to Use This Image
- Image Variants
- Environment Variables
- Managing SourceMod Plugins
- Populating with Own Server Files
- Updating the Server
$ docker run \ -v=csgo:/home/csgo/server \ --net=host \ timche/csgo
This is a bare minimum example and the server will be:
- installed on a volume named
csgotoensure persistence of server files. - running on the default port
27015on thehostnetwork foroptimal network performance - running in LAN mode since aGame Server Login Token (GSLT) is required to run the server on the internet.
To configure the server with more advanced settings, setenvironment variables.
Each variant refers to a tag, e.g.timche/csgo:<tag>.
Vanilla CS:GO server.
Vanilla CS:GO server with untouchedMetamod:Source andSourceMod.
Vanilla CS:GO server with untouchedMetamod:Source,SourceMod,PugSetup andPracticeMode (bysplewis).
Default: None
Your Game Server Login Token (GSLT) if you want to run the server on the internet.
Sets+sv_setsteamaccount insrcds_run parameters.
Default: None
YourSteam Web API Key to download workshop maps.
Sets-authkey insrcds_run parameters.
Default:0.0.0.0
Internet IP the server is accessible from. In most cases the default value is sufficient, but if you want to run aGOTV server or have issues connecting to the server, setting the IP can help.
Sets+ip insrcds_run parameters.
Default:27015
Port the server is listening to.
Sets-port insrcds_run parameters.
Default:de_dust2
Start the server with a specific map.
Sets+map insrcds_run parameters.
Default:16
Maximum players allowed to join the server.
Sets-maxplayers_override insrcds_run parameters.
Default:Counter-Strike: Global Offensive
The server name.It can't contain spaces, so if you need a server name with spaces, sethostname in a config instead, e.g.server.cfg.
Sets+hostname insrcds_run parameters.
Default:changeme
RCON password to administrate the server.
Sets+rcon_password insrcds_run parameters.
Default: None
Password to join the server.
Sets+sv_password insrcds_run parameters.
Default:128
Server tick rate which can be64 or128. The default value gives the best game experience, but also requires most server hardware resources.
Sets-tickrate insrcds_run parameters.
Default:0 (Competitive)
Sets+game_type insrcds_run parameters.
Default:1
Sets+game_mode insrcds_run parameters.
Default:mg_active
Map group.
Sets+mapgroup insrcds_run parameters.
Default:false
Enable GOTV. Can be enabled withtrue.
Default:GOTV
Set GOTV name.
Default: None
Set GOTV password.
Default:45
Set GOTV broadcast delay in seconds.
Default:27020
Set GOTV port.
Default:1
Delay the map change on game server until rest of buffered game has been broadcasted.
Default:2
Default:1
Default:10
Maximum client number for GOTV.
Default:0
Maximum bandwidth spend per client in bytes/second.
Default:0
Default:128
World snapshots broadcasted per second by GOTV.
Default:60
Default:1
By default entities and events outside of the auto-director view are removed from GOTV broadcasts to save bandwidth. Iftv_transmitall is enabled, the whole game is transmitted and spectators can switch their view to any player they want. This option increases bandwidth requirement per spectator client by factor 2 to 3.
Default:false
Force client netsettings to highestrate (786432),cmdrate (128) andupdaterate (128). This ensures optimal gameplay experience. Requires 128tick rate.
Sets+sv_minrate,+sv_mincmdrate and+sv_minupdaterate insrcds parameters.
Additionalsrcds_runparameters.
Default:false
Disable bots completely. Can be enabled withtrue.
This is not settingbot_quota to0, because it's buggy and still spawns bots when players are for example disconnecting or switching sides. This is also not setting-nobots parameter, because it's also buggy and causes radar bugs with smokes. This simply removes bot profile files, so the server can't spawn any bots as it can't find an appropriate difficulty profile. It just works™. Bots in PracticeMode still work though.
Default:/usr/csgo
Absolute path to a directory in the container containing custom server files. Changing this is not recommended in order to follow the documentation. See more at "Populating with Own Server Files".
Default:false
Add server configs for competitive 5v5, knife round, aim map and FFA deathmatch fromcsgo-server-configs. Can be enabled withtrue.
Default:1.1.0
csgo-server-configs version. Changing this will update/downgrade it on container start. Only works withSERVER_CONFIGS set totrue.
sourcemod,pug-practiceimage only.
Default:1.11.0
Metamod:Source version running on the server. Changing this will update/downgrade it on container start.
sourcemod,pug-practiceimage only.
Default:1156
Metamod:Source build number running on the server. Changing this will update/downgrade it on container start. Build number must exist at version.
sourcemod,pug-practiceimage only.
Default:1.12.0
SourceMod version running on the server. Changing this will update/downgrade it on container start.
sourcemod,pug-practiceimage only.
Default:7172
SourceMod build number running on the server. Changing this will update/downgrade it on container start. Build number must exist at version.
sourcemod,pug-practiceimage only.
Default: None
List of comma-separated SourceMod plugins (e.g.nextmap,reservedslots,sounds) that are disabled.* disables all plugins. The plugins are moved into thedisabled folder on container start. This is running beforeSOURCEMOD_PLUGINS_ENABLED.
sourcemod,pug-practiceimage only.
Default: None
List of comma-separated SourceMod plugins (e.g.mapchooser,randomcycle,rockthevote) that are enabled.* enables all plugins. The plugins are moved out of thedisabled folder intoplugins on container start. This is running afterSOURCEMOD_PLUGINS_DISABLED.
sourcemod,pug-practiceimage only.
List of comma-separated Steam IDs that are SourceMod admins (e.g.STEAM_0:0:123,STEAM_0:1:234) withz flag.
pug-practiceimage only.
Default:2.0.7
PugSetup version running on the server. Changing this will update/downgrade it on container start.
pug-practiceimage only.
Default:1.3.4
PracticeMode version running on the server. Changing this will update/downgrade it on container start.
pug-practiceimage only.
Default:false
Disables all SourceMod plugins and enables only minimal required plugins for optimal server performance:
admin-flatfilebotmimiccsutilspracticemodepugsetup
Can be enabled withtrue. Additional plugins can be enabled withSOURCEMOD_PLUGINS_ENABLED.
pug-practiceimage only.
Default: None
List of comma-separated PugSetup permissions (e.g.sm_10man=none,sm_setup=admin) that are set inaddons/sourcemod/configs/pugsetup/permissions.cfg. Changes are applied on container start.
pug-practiceimage only.
Default: None
List of comma-separated PugSetup configurations (e.g.maptype=current,record=0:0) that are set inaddons/sourcemod/configs/pugsetup/setupoptions.cfg where the first value is thedefault value followed by an optional second value which is thedisplay_setting value and a: delimiter in between them. Changes are applied on container start.
pug-practiceimage only.
Default: None
List of comma-separated PugSetup configurations (e.g.sm_pugsetup_autosetup=1,sm_pugsetup_quick_restarts=1) that are set incfg/sourcemod/pugsetup.cfg. Changes are applied on container start, but not on initial container start aspugsetup.cfg must be auto-generated first by the server.
pug-practiceimage only.
Default: None
List of comma-separated PugSetup configurations (e.g.sm_pugsetup_damageprint_auto_color=1,sm_pugsetup_damageprint_format={NAME} [{HEALTH}]: {DMG_TO}/{HITS_TO}) that are set incfg/sourcemod/pugsetup_damageprint.cfg. Changes are applied on container start, but requirespugsetup_damageprinter plugin to be run first.
Default:false
Validate and restore missing/fix broken server files (incl. Metamod, SourceMod, PugSetup and PracticeMode if you're usingsourcemod orpug-practice images) on container start. Can be enabled withtrue.
This should especially be used whenever custom server files have been deleted and have overwritten files before, e.g.addons/sourcemod/configs/admins_simple.ini, and you want to restore the original files.
Default:false
Print all executed commands for better debugging.
SourceMod plugins can be managed through the environment variablesSOURCEMOD_PLUGINS_DISABLED andSOURCEMOD_PLUGINS_ENABLED where either selected (comma-separated list) or all (*) plugins are disabled/enabled. Plugins are disabled first and then enabled on container start.
# .envSOURCEMOD_PLUGINS_DISABLED="*"SOURCEMOD_PLUGINS_ENABLED="admin-flatfile,antiflood,reservedslots"
This will disable all plugins and enableadmin-flatfile,antiflood andreservedslots. Using* is useful to disable/enable all plugins without needing to specify them individually.
Thepug-practice image also offers aPUG_PRACTICE_MINIMAL_PLUGINS environment variable that disables all SourceMod plugins and enables only minimal required plugins for PugSetup and PracticeMode for optimal server performance.
The server can be populated with your own custom server files (e.g. configs and maps) through a mounted directory that has the same folder structure as the servercsgo folder in order to add or overwrite the files at their respective paths. Deleted custom server files, which have been added or have overwritten files before, are also removed from thecsgo folder. The directory must be mounted atCSGO_CUSTOM_FILES_DIR (default:/usr/csgo) and will be synced with the servercsgo folder at each start of the container.
Note: SeeVALIDATE_SERVER_FILES on how to restore original files if they've been overwritten before but are removed now.
Custom server files in/home/user/custom-files:
custom-files├── addons│ └── sourcemod│ └── configs│ └── admins_simple.ini# Will be overwritten└── cfg └── server.cfg# Will be added
/home/user/custom-files mounted toCSGO_CUSTOM_FILES_DIR (default:/usr/csgo) in the container:
$ docker run \ -v=csgo:/home/csgo/server \ -v=/home/user/custom-files:/usr/csgo\# Mount the custom files directory --net=host \ timche/csgo
Once the server has been installed, the container will check for a server update at every container start.
csgo-updater, a companion Docker image, is automatically watching all containers running this image and will restart them when a server update is available and the server is empty. We recommend this to update your servers without hassle.
$ docker run -d \ --name csgo-updater \ -v /var/run/docker.sock:/var/run/docker.sock \ timche/csgo-updater
Restart the container withdocker restart.
Container namedcsgo:
$ docker restart csgo
About
Counter-Strike: Global Offensive (CS:GO) Dedicated Server with automated/manual updating and optional SourceMod and PugSetup/PracticeMode integrations
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors7
Uh oh!
There was an error while loading.Please reload this page.