How to Install a Counter-Strike: Source Dedicated Server
Install a CSS dedicated server with SteamCMD using AppID 232330, then launch it with srcds_run or srcds.exe.
Installing a Counter-Strike: Source Dedicated Server
CSS uses the Source engine's srcds binary — not the CS2 cs2 binary. If you're coming from CS2, the biggest thing to internalize up front: the server AppID is 232330, not 240 (the client). Get that wrong in SteamCMD and you'll install the game client, not the server.
Download SteamCMD
Grab SteamCMD from Valve's official site:
- Linux:
steamcmd_linux.tar.gzfrom https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz - Windows:
steamcmd.zipfrom https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
Extract it to a directory you own, e.g. /home/steam/steamcmd/ on Linux.
Install the Server Files
Run SteamCMD and install AppID 232330:
./steamcmd.sh +force_install_dir /home/steam/css-server \
+login anonymous \
+app_update 232330 validate \
+quit
On Windows:
steamcmd.exe +force_install_dir "C:\css-server" ^
+login anonymous ^
+app_update 232330 validate ^
+quit
This pulls down around 3-4 GB. The validate flag checksums every file against Steam's depot — run it any time you suspect corruption or after an update.
Launch the Server
Linux:
./srcds_run -game cstrike \
-console \
-usercon \
+map de_dust2 \
+maxplayers 24 \
-port 27015
Windows:
srcds.exe -game cstrike -console -usercon +map de_dust2 +maxplayers 24 -port 27015
Key flags:
-game cstrike— tells srcds which game to load; this is Counter-Strike: Source-usercon— enables RCON and local console input simultaneously; skip this and you lose the ability to type commands at the server terminal-port 27015— default Source server port; change if you're running multiple instances on one machine (increment by 1 for each: 27015, 27016, …)+maxplayers 24— 24 is a common CSS cap; the engine hard-limits at 32
Verifying a Good Start
Watch the console output. A healthy first boot looks like:
VAC secure mode is activated.
If you see that line, the server registered with Valve's authentication servers and is ready for clients. If VAC fails to activate, check your firewall — UDP 27015 and TCP 27015 must be open to the internet.
Directory Structure After Install
The important paths, relative to your install root:
cstrike/cfg/server.cfg ← your main config (generated on first start)
cstrike/maps/ ← .bsp map files go here
cstrike/addons/ ← MetaMod + SourceMod live here
cstrike/logs/ ← server logs
Note: CSS uses cstrike/ — not game/csgo/cfg/ like CS2. If a guide tells you to edit csgo/cfg/, that's a CS2 guide and it does not apply here.
Keeping the Server Updated
Re-run the SteamCMD app_update 232330 validate command any time Valve pushes an update. For Linux, wrap srcds_run in a shell script or systemd service to auto-restart after crashes.