MatchZy Auto Tournament¶
Automated CS2 tournament management¶
One click from bracket creation to final scores
Features¶
- Full Automation — Create tournaments, generate brackets, start matches. System handles server allocation and progression.
- Map Veto System — FaceIT-style interactive pick/ban for BO1/BO3/BO5 with real-time turn-based security.
- Real-Time Updates — Live scores, player tracking, bracket updates. WebSocket-powered, zero refresh needed.
- Public Team Pages — No-auth pages for teams to view matches and veto. Share a link, teams handle the rest.
- Admin Controls — Pause, restore, add players, broadcast messages. Full RCON integration for match control.
- Match Tracking — Player connections, round scores, statistics. Complete match history and analytics.
Quick Start Paths¶
😊 Recommended: CS2 Server Manager¶
Use the companion CS2 Server Manager to deploy 3–5 CS2 servers that already include:
- CounterStrikeSharp + Metamod:Source
- MatchZy enhanced fork + CS2 AutoUpdater
- Pre-configured webhooks and RCON
Best for LANs, new admins, or anyone who wants a working fleet in minutes.
🛠️ Docker Setup (no cloning needed)¶
Create docker-compose.yml and set environment variables (see Quick Start Guide for full example):
# Create docker-compose.yml with PostgreSQL service and matchzy-tournament image
# Set API_TOKEN and SERVER_TOKEN environment variables (see Quick Start Guide)
docker compose up -d
Dashboard access: http://localhost:3069
🛠️ Build from Source (for contributors)¶
git clone https://github.com/sivert-io/matchzy-auto-tournament.git
cd matchzy-auto-tournament
# Set environment variables (tokens will be displayed)
API_TOKEN=$(openssl rand -base64 12 | tr -d '=+/')
SERVER_TOKEN=$(openssl rand -base64 12 | tr -d '=+/')
echo "Your API_TOKEN (admin password): $API_TOKEN"
echo "Your SERVER_TOKEN (for CS2 servers): $SERVER_TOKEN"
export API_TOKEN
export SERVER_TOKEN
docker compose -f docker/docker-compose.local.yml up -d --build
Database: PostgreSQL is required for all setups. The database schema is automatically initialized on first startup. For local development, use yarn db to start PostgreSQL, or run manually with Docker:
docker run -d --name matchzy-postgres \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=matchzy_tournament \
-p 5432:5432 \
postgres:16-alpine
Requirements¶
- CS2 servers with modified MatchZy plugin
- Node.js 18+ or Docker
- RCON access to servers
Support¶
MIT License • Made with for the CS2 community