{"id":33900552,"url":"https://github.com/sivert-io/cs2-server-manager","last_synced_at":"2026-02-07T19:00:59.331Z","repository":{"id":324408589,"uuid":"1090124600","full_name":"sivert-io/cs2-server-manager","owner":"sivert-io","description":"💣 Automated CS2 multi-server manager with competitive plugins and tournament integration.","archived":false,"fork":false,"pushed_at":"2026-01-28T22:57:05.000Z","size":124876,"stargazers_count":12,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-29T06:35:23.947Z","etag":null,"topics":["competitive","counter-strike-2","counterstrikesharp","cs2","cs2-server","dedicated-server","esports","game-server","lan-party","linux","matchzy","metamod","server-automation","server-manager","steamcmd","tmux","tournament"],"latest_commit_sha":null,"homepage":"http://docs.sivert.io/csm","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sivert-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"sivert-io","ko_fi":"sivert"}},"created_at":"2025-11-05T08:55:46.000Z","updated_at":"2026-01-28T22:57:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"f3c54b96-d431-44a0-a6a9-c489a75f13e4","html_url":"https://github.com/sivert-io/cs2-server-manager","commit_stats":null,"previous_names":["sivert-io/cs2-server-manager"],"tags_count":73,"template":false,"template_full_name":null,"purl":"pkg:github/sivert-io/cs2-server-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivert-io%2Fcs2-server-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivert-io%2Fcs2-server-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivert-io%2Fcs2-server-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivert-io%2Fcs2-server-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sivert-io","download_url":"https://codeload.github.com/sivert-io/cs2-server-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivert-io%2Fcs2-server-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29204940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T17:44:10.191Z","status":"ssl_error","status_checked_at":"2026-02-07T17:44:07.936Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["competitive","counter-strike-2","counterstrikesharp","cs2","cs2-server","dedicated-server","esports","game-server","lan-party","linux","matchzy","metamod","server-automation","server-manager","steamcmd","tmux","tournament"],"created_at":"2025-12-11T23:02:29.942Z","updated_at":"2026-02-07T19:00:59.318Z","avatar_url":"https://github.com/sivert-io.png","language":"Go","funding_links":["https://github.com/sponsors/sivert-io","https://ko-fi.com/sivert"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/icon.svg\" alt=\"CS2 Server Manager\" width=\"140\" height=\"140\"\u003e\n  \n  # CS2 Server Manager\n  \n  💣 **Automated multi-server management for Counter-Strike 2**\n  \n  \u003cp\u003eDeploy multiple dedicated CS2 servers in minutes with competitive plugins, auto-updates, and tournament integration.\u003c/p\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Docker](https://img.shields.io/badge/Docker-Required-2496ED?logo=docker\u0026logoColor=white)](https://docs.docker.com/engine/install/)\n\n**🔗 [MatchZy Auto Tournament](https://github.com/sivert-io/matchzy-auto-tournament)** • **[MatchZy Enhanced](https://github.com/sivert-io/MatchZy-Enhanced)**\n\n\u003c/div\u003e\n\n---\n\n## 🚀 Quick Start (global install, recommended)\n\nOn a Linux server, you can **install `csm` globally** and launch the latest release with a single command:\n\n```bash\narch=$(uname -m); \\\ncase \"$arch\" in \\\n  x86_64)  asset=\"csm-linux-amd64\" ;; \\\n  aarch64|arm64) asset=\"csm-linux-arm64\" ;; \\\n  *) echo \"Unsupported architecture: $arch\" \u0026\u0026 exit 1 ;; \\\nesac; \\\ntmp=$(mktemp); \\\ncurl -L \"https://github.com/sivert-io/cs2-server-manager/releases/latest/download/$asset\" -o \"$tmp\" \u0026\u0026 \\\nsudo install -m 0755 \"$tmp\" /usr/local/bin/csm \u0026\u0026 \\\nrm \"$tmp\" \u0026\u0026 \\\nsudo csm          # launches the interactive TUI installer\n```\n\nBy default, CSM stores its data under `/opt/cs2-server-manager` (creating it on demand) so overrides, game files, and logs are kept in one place.\n\n### If `steamcmd` can’t be installed (Debian/Ubuntu)\n\nIf you see `E: Unable to locate package steamcmd`, your apt sources likely don’t include the component that provides SteamCMD.\n\n- **Note**: When run via `sudo csm install-deps` (or the TUI equivalent), CSM will attempt to **automatically enable the required component(s)** in `/etc/apt/sources.list`, write a timestamped backup (e.g. `/etc/apt/sources.list.csm.bak-YYYYMMDD-HHMMSS`), then rerun `apt-get update` and retry the install.\n\n- **Debian (Bookworm)**: ensure your apt sources include `contrib` + `non-free` (and often `non-free-firmware`), then:\n\n```bash\nsudo apt-get update\nsudo apt-get install steamcmd\n```\n\n- **Ubuntu**: enable `multiverse`, then:\n\n```bash\nsudo add-apt-repository multiverse\nsudo apt-get update\nsudo apt-get install steamcmd\n```\n\nIf auto-fix can’t update your sources (or you don’t want it to), CSM will show a targeted hint. Full logs are written to `/opt/cs2-server-manager/logs/csm.log` by default.\n\n---\n\n### Newer distros: CounterStrikeSharp compatibility (Steam Runtime)\n\nOn newer Linux distributions (for example Debian 13 / Ubuntu 25.04+), CounterStrikeSharp may fail to load under the system runtime. CSM can automatically launch the server using **Steam Runtime (SteamRT3)** as a workaround, based on upstream findings in [CounterStrikeSharp issue #1024](https://github.com/roflmuffin/CounterStrikeSharp/issues/1024).\n\n- **Auto behavior**: on affected OS versions, CSM installs Steam Runtime (app `1628350`) into `/home/\u003ccs2user\u003e/steamrt` (if missing) and starts servers via the runtime wrapper.\n- **Override**: set `CSM_STEAMRT=1` to force-enable, or `CSM_STEAMRT=0` to force-disable.\n\n### CS2 launch script (`cs2.sh`) (default) and alternate launcher (`csm.sh`)\n\n- **Default**: CSM launches using Valve’s `game/cs2.sh` (kept intact).\n- **Alternate (opt-in)**: CSM also installs `game/csm.sh`, which sets `LD_LIBRARY_PATH` to prefer CS2-bundled libs (helpful for common `libserver.so` / `libv8` mismatch issues). Use it when troubleshooting by starting with:\n\n```bash\nsudo csm start --alternate\n```\n\nYou can also target a single server:\n\n```bash\nsudo csm start --alternate 1\n```\n\nIf you want to run the `cs2` **binary directly** (not recommended; provided for troubleshooting), you can use:\n\n```bash\nsudo csm start --binary\n```\n\n---\n\n## ✨ Features\n\n💣 **Multi-Server Deployment** — 3–5 servers with one command  \n⚙️ **Auto-Plugin Install** — Metamod, CounterStrikeSharp, MatchZy  \n🔁 **Auto-Updates** — Game \u0026 plugin updates happen automatically  \n📦 **Config Persistence** — Your configs in `overrides/` survive all updates  \n🏆 **Tournament Ready** — Integrates with MatchZy Auto Tournament  \n🔐 **MySQL Setup** — Docker-based database auto-provisioned  \n🖥 **Interactive Menu** — Easy server management\n\n---\n\n## 🎮 Usage\n\nOnce installed globally you can:\n\n```bash\nsudo csm    # launch the TUI for installs, updates, status, etc. (requires sudo)\ncsm help    # show CLI help without sudo\n```\n\nCommon CLI commands:\n\n```bash\n# Server management\nsudo csm status                 # Tmux status overview\nsudo csm start [server]         # Start all servers (or specific server)\nsudo csm stop [server]          # Stop all servers (or specific server)\nsudo csm restart [server]       # Restart all servers (or specific server)\n\n# Updates\nsudo csm update-game            # Update CS2 game files\nsudo csm update-plugins         # Update plugins (download + deploy)\nsudo csm monitor                # Run one iteration of the auto-update monitor\n\n# Setup \u0026 maintenance\nsudo csm install-deps           # Install core system dependencies\nsudo csm bootstrap              # Install/redeploy servers\nsudo csm install-monitor-cron   # Install cron-based auto-update monitor\nsudo csm reinstall \u003cserver\u003e     # Rebuild a server (fixes corrupted files)\nsudo csm update-config \u003cserver\u003e # Regenerate server configs without reinstalling\nsudo csm unban \u003cserver\u003e \u003cip\u003e    # Remove IP from banned RCON requests (use 0 for all servers)\nsudo csm unban-all \u003cserver\u003e     # Clear all IPs banned for RCON attempts (use 0 for all servers)\ncsm list-bans \u003cserver\u003e          # List banned IPs for a server\n\n# Cleanup\nsudo csm cleanup-all            # Danger: remove all CS2 data and user\n```\n\nFor logs and debugging:\n\n```bash\nsudo csm attach 1        # Attach to server 1 console (tmux)\nsudo csm debug 1         # Run server 1 in foreground (debug mode)\nsudo csm logs 1 100      # View last 100 lines of server 1 logs\nsudo csm logs-file 1     # Print the log file path for server 1\n```\n\n---\n\n## 📚 Documentation \u0026 Links (docs.sivert.io)\n\n- [Docs home](https://docs.sivert.io/docs/csm) – hosted docs and guides.\n- [Quick Start](https://docs.sivert.io/docs/csm/quick-start) – installation and first run.\n- [Managing Servers](https://docs.sivert.io/docs/csm/user/managing-servers) – day-to-day operations.\n- [Configuration \u0026 Overrides](https://docs.sivert.io/docs/csm/user/configuration) – customizing configs.\n- [Auto Updates](https://docs.sivert.io/docs/csm/user/auto-updates) – how the monitor and updates work.\n- [Troubleshooting](https://docs.sivert.io/docs/csm/user/troubleshooting) – common issues and fixes.\n- [MatchZy Enhanced Fork](https://github.com/sivert-io/MatchZy-Enhanced)\n- [MatchZy Auto Tournament](https://github.com/sivert-io/matchzy-auto-tournament)\n- [Project Roadmap \u0026 Status](https://kan.sivert.io/MAT) – kanban board (auto-updates from GitHub issues)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003eMade with ❤️ for the CS2 community\u003c/strong\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsivert-io%2Fcs2-server-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsivert-io%2Fcs2-server-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsivert-io%2Fcs2-server-manager/lists"}