Repository Archived
Attention All Contributors & Users
Due to the release of Counter-Strike 2, this repository is now archived and will no longer be actively maintained. The Docker Hub images will still be available, however they'll no longer receive updates.
We're Moving!
Development continues on the CS2 Repository
Please make sure to star the new repository and submit any new issues, pull requests, or contributions there.
Regards,
Walentin 'Walki' Lamonos
Supported tags and respective Dockerfile links
What is Counter-Strike: Global Offensive?
Counter-Strike: Global Offensive (CS: GO) expands upon the team-based action gameplay that it pioneered when it was launched 19 years ago. CS: GO features new maps, characters, weapons, and game modes, and delivers updated versions of the classic CS content (de_dust2, etc.). This Docker image contains the dedicated server of the game.
How to use this image
Hosting a simple game server
Running on the host interface (recommended):
Running using a bind mount for data persistence on container recreation:
$ chmod 777 $(pwd)/csgo-data # Makes sure the directory is writeable by the unprivileged container user
$ docker run -d --net=host -v $(pwd)/csgo-data:/home/steam/csgo-dedicated/ --name=csgo-dedicated -e SRCDS_TOKEN={YOURTOKEN} cm2network/csgo
Running multiple instances (increment SRCDS_PORT and SRCDS_TV_PORT):
SRCDS_TOKEN is required to be listed & reachable. Generate one here using AppID 730:
https://steamcommunity.com/dev/managegameservers
SRCDS_WORKSHOP_AUTHKEY is required to use workshop features:
https://steamcommunity.com/dev/apikey
It's also recommended to use "--cpuset-cpus=" to limit the game server to a specific core & thread.
The container will automatically update the game on startup, so if there is a game update just restart the container.
Configuration
Environment Variables
Feel free to overwrite these environment variables, using -e (--env):
SRCDS_RCONPW="changeme" (value can be overwritten by csgo/cfg/server.cfg)
SRCDS_PW="changeme" (value can be overwritten by csgo/cfg/server.cfg)
SRCDS_PORT=27015
SRCDS_TV_PORT=27020
SRCDS_NET_PUBLIC_ADDRESS="0" (public facing ip, useful for local network setups)
SRCDS_IP="0" (local ip to bind)
SRCDS_LAN="0"
SRCDS_FPSMAX=300
SRCDS_TICKRATE=128
SRCDS_MAXPLAYERS=14
SRCDS_STARTMAP="de_dust2"
SRCDS_REGION=3
SRCDS_MAPGROUP="mg_active"
SRCDS_GAMETYPE=0
SRCDS_GAMEMODE=1
SRCDS_HOSTNAME="New CSGO Server" (first launch only)
SRCDS_WORKSHOP_START_MAP=0
SRCDS_HOST_WORKSHOP_COLLECTION=0
SRCDS_WORKSHOP_AUTHKEY="" (required to use host_workshop_map)
ADDITIONAL_ARGS="" (Pass additional arguments to srcds. Make sure to escape correctly!)
Config
The image contains a copy of the official ESL config files from here. You can edit the config using this command:
If you want to learn more about configuring a CS:GO server check this documentation.
Image Variants:
The csgo images come in three flavors, each designed for a specific use case.
csgo:latest
This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is a bare-minimum CSGO dedicated server containing no 3rd party plugins.
csgo:metamod
This is a specialized image. It contains the plugin environment Metamod:Source which can be found in the addons directory. You can find additional plugins here.
csgo:sourcemod
This is another specialized image. It contains both Metamod:Source and the popular server plugin SourceMod which can be found in the addons directory. SourceMod supports a wide variety of additional plugins that can be found here.