This docker image provides a preconfigured Counter-Strike Source server with several plugins.
The Docker image in the Docker Hub can be found here.
The image build now downloads the bundled maps and plugin archives during docker build, which keeps the repository checkout much smaller while preserving the same runtime contents.
Bundled map and plugin binaries are stored on the assets branch.
That branch was seeded from commit ff7d5b25b8c09ed891af6959c6f8f596aaab6f82, and is continuously updated as the authoritative source for the latest binary assets.
assets/maps.txt and assets/mods.txt in the main development branch remain the source manifests used by the Docker build.
The Docker build uses ASSET_REF (default: assets) to fetch binary files:
docker build --build-arg ASSET_REF=assets .
You can pin to a specific commit when needed:
docker build --build-arg ASSET_REF=<commit-sha> .
When adding or replacing binary assets, update the assets branch contents first, then update assets/maps.txt and assets/mods.txt in the development branch.
sv_downloadurl is intentionally pinned to the assets branch so clients always fetch the latest published asset set.
List of used plugins:
- metamod:source v1.10.6
- SourceMod v1.7.3-5275
- Quake Sounds v1.8
- Damage Report/Stats v1.1.13
- MapChooser Extended 1.10.2
The docker container requires some ports to be exposed, therefore a more advanced run command is required.
docker run -d --name css-server-27015 \
-p 27015:27015 -p 27015:27015/udp -p 1200:1200 \
-p 27005:27005/udp -p 27020:27020/udp -p 26901:26901/udp \
-e RCON_PASSWORD=mypassword \
foxylion/steam-css
Due to the linux kernel is caching the udp connection state you have to manually clean the udp connection tracking, before you can immediately reconenct to the server. More details can be found here.
apt-get install conntrack
conntrack -D -p udp
RCON_PASSWORDis your personal RCON password to authenticate as the administratorCSS_HOSTNAMEis your custom server name shown in the server listCSS_PASSWORDis the password a user may require to connect, can be left empty
You can mount a directory where the css server should copy all currently installed maps and sounds so you can use the sv_downloadurl option.
- v /path/to/target:/home/steam/htdocs
-v /path/to/mapcycle.txt:/home/steam/css/cstrike/cfg/mapcycle.txt
To control the SourceMod admins on the server you can use your own admins.cfg or admins_simple.ini file.
-v /path/to/admins_simple.ini:/home/steam/css/cstrike/addons/sourcemod/configs/admins_simple.ini
The default server.cfg can also be overriden, but you can also only override some specific settings, therefore use the following pattern
-v /path/to/my-server.cfg:/home/steam/css/cstrike/cfg/my-server.cfg
Any other configuration file can also be overriden using the same method as above, you must just locate the right file in the docker container. The folder structure is the same as when you install the server locally.