CS2 Server Manager¶
Quickly deploy three to five Counter-Strike 2 servers that are already configured for MatchZy Auto Tournament end-to-end.1
Why use it?¶
- Tournament ready in minutes – downloads CS2, installs CounterStrikeSharp + Metamod:Source, and applies the MatchZy enhanced fork automatically.
- Full automation – the included
manage.shscript handles installation, updates, restarts, repairs, and debug sessions (tmux-based). - Safe overrides – drop configs inside
overrides/game/csgo/and they persist across plugin or game updates. - Flexible operation – run interactively (menu) or via non-interactive commands in CI/remote scripts.
Prerequisites¶
sudo apt-get update
sudo apt-get install -y lib32gcc-s1 lib32stdc++6 steamcmd tmux curl jq unzip tar rsync
Ensure you have ~60 GB free disk for the Steam master install plus per-server copies.
Installation¶
git clone https://github.com/sivert-io/cs2-server-manager.git
cd cs2-server-manager
# Interactive (choose defaults for 3 servers)
./manage.sh
# Non-interactive (auto-installs with defaults)
./manage.sh install
During the interactive wizard:
- Pick the number of servers (default 3, max 5).
- Confirm ports/RCON password (
ntlan2025by default—change it!). - Wait for SteamCMD + plugin downloads to finish.
Day-to-day usage¶
Common commands¶
./manage.sh start # Launch all servers (non-interactive)
./manage.sh stop # Stop all servers
./manage.sh status # Show health + plugin versions
./manage.sh update-game # Pull latest CS2 build
./manage.sh update-plugins
./manage.sh repair # Validate installs without re-downloading everything
Direct tmux helpers¶
sudo ./scripts/cs2_tmux.sh start # Start every server
sudo ./scripts/cs2_tmux.sh start 1 # Start server 1 only
sudo ./scripts/cs2_tmux.sh attach 1 # Open console (Ctrl+B, D to detach)
sudo ./scripts/cs2_tmux.sh logs 1 100 # Tail last 100 log lines
sudo ./scripts/cs2_tmux.sh debug 1 # Foreground mode for troubleshooting
Customization¶
| Server | Game Port | GOTV Port |
|---|---|---|
| 1 | 27015 | 27020 |
| 2 | 27025 | 27030 |
| 3 | 27035 | 27040 |
- Ports auto-increment by 10; override via environment variables (see below).
- RCON password defaults to
ntlan2025—setRCON_PASSWORD=mysecurebefore install.
Overrides & configs¶
overrides/game/csgo/
├── cfg/MatchZy/ # MatchZy configs (config.cfg, admins.json, etc.)
└── addons/ # Additional plugin configs
Everything inside overrides/ survives updates and reinstalls, making it ideal for tournament-specific configs.
Environment variables¶
Combine with automation tooling (Ansible, GitHub Actions self-hosted runners, etc.) to provision LAN environments quickly.
Troubleshooting¶
- Server fails to boot:
sudo ./scripts/cs2_tmux.sh debug 1for realtime console output. - Plugins missing / steamclient errors:
./manage.sh repair. - Need to inspect logs:
sudo ./scripts/cs2_tmux.sh logs <server> 200.
MatchZy Auto Tournament only needs the webhook base URL and SERVER_TOKEN once these servers are online; the manager keeps GOTV enabled, installs the enhanced MatchZy fork, and preconfigures the remote log URL hook destination.
Next steps¶
- Finish installation.
- Point MatchZy Auto Tournament at the new servers (Admin → Servers).
- Start the tournament—auto allocation and live stats will immediately work.
-
CS2 Server Manager repository — https://github.com/sivert-io/cs2-server-manager. ↩