Skip to content

MatchZy Auto Tournament

Automated CS2 tournament management

One click from bracket creation to final scores

Get Started View Features


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.

View All Features


Quick Start Paths

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


Support

GitHub Issues Discussions


MIT License • Made with for the CS2 community