Auto Tournament
Self-hosted · source available · CS2 included

The tournament runs. You play.

Create the tournament, add your servers, and Auto Tournament runs the veto, loads every match, keeps the bracket moving and cuts a highlight reel when it is over. Between events, players queue for matchmaking on the same servers.

Free for non-commercial use · Licensing · Runs on one Docker host

Matchmaking

Queue up between tournaments.

Players find a 5v5, 2v2 wingman or 1v1 game on your own servers. Parties stay on one team, the teams are balanced by rating, and tournament matches always get a server first.

  • Accept within 20 seconds, or the rest queue again at the front
  • Ratings carry over between matchmaking and tournaments
  • A leaderboard, match history and friends on every profile

Find a match

Party of 3 · 2 open spots

Example
Eight teams on Saturday, double elimination, best of 3 in the final. Knives for the top three, about $300, $150 and $75.
templates_list
skins_catalog
tournament_create
skins_settings_update
Done: "Saturday Cup", double elimination, Bo1 until the final and a Bo3 final on the 7-map pool. Rewards: a Karambit Fade, an M9 Bayonet Ultraviolet and a Gut Knife Doppler, each close to its price today.
Match 4 is stuck in warmup.
match
match_log
servers
Server 2 went offline 3 minutes ago. I moved the match to server 5; both teams see the new server on their match page.
AI

Let AI run your tournaments.

Connect Claude or any MCP client to your site. Describe the tournament you want and it sets it up, suggests settings and rewards, watches the matches and fixes what goes wrong.

  • Reads matches, servers, logs and settings; acts only with an admin token
  • Every change is its own tool, so you approve each one
  • Skin rewards picked by market price
Discord

A Discord bot comes with it.

Paste your bot’s token and pick your server. When a tournament starts, its players get their own channels. Each team gets a private text and voice channel. It runs inside the platform, so there’s nothing extra to host.

  • Only the tournament’s players see its channels, and they’re gone 3 days after it ends
  • One card per match in the team’s channel. It updates from the veto to the result
  • Players in voice are moved to their team’s channel when the match is ready
  • DMs only when someone has to act and isn’t on the site
  • Admins get a DM when a player calls for help from the server
Winter LAN
  • chatplayers only
  • Lobbylisten only
  • kestrelyour team
  • Kestrelyour team

Kestrel vs Halcyon · Live

Live on map 2 of 3, Inferno: @Kestrel 9–7 @Halcyon

Go to match ↗
Tournaments

Everything between sign-up and the trophy.

Map veto in the browser.

Team captains ban and pick maps from any device with a browser. When the veto is done, the server loads the right maps and sides.

  • Bo1, Bo3 and Bo5 formats
  • Knife round or side pick
  • Custom veto order per tournament

Every match finds a server.

Add your game servers once. Auto Tournament loads each match on a free one, waits when they are all busy, and tells you when one goes offline or needs an update.

  • Machines added with one command
  • Waits for a free server, never double-books
  • Demos uploaded after every map

Players keep their history.

Ratings, stats and match history carry over from one tournament to the next, so seeding gets fairer every event.

Brackets for any format.

Single and double elimination, round robin and Swiss. Results move the bracket on as soon as a map ends.

  • Shuffle tournaments with balanced teams
  • Seeding from ratings
  • A public page for every tournament

Highlights recorded for you

The best rounds of every match come back as clips and reels, with music players can pick and a crowd that reacts. Each clip is recorded frame by frame, so slow motion stays smooth at 240 fps. A slower GPU just takes longer.

Sign in your way

Steam, Discord, email or your own OpenID Connect provider. Import players from your event system and they keep their names.

Yours to run

One Docker host runs the web app, the API and the database. Your players, matches and clips stay on your machine.

CS2 today. More games as modules.

Games plug in as modules. The CS2 module ships with the platform: the match plugin on your servers reports every round back. Every other game runs on manual reporting: a captain reports the score, the other captain agrees.

Included

Counter-Strike 2

Your own servers. Veto, live scores, demos and stats.

Manual reporting · 3.0

Rocket League

Captains report the score, the other captain agrees.

Manual reporting · 3.0

Valorant

Captains report the score, the other captain agrees.

Manual reporting · 3.0

League of Legends

Captains report the score, the other captain agrees.

Manual reporting · 3.0

Dota 2

Captains report the score, the other captain agrees.

Manual reporting · 3.0

Deadlock

Captains report the score, the other captain agrees.

Manual reporting · 3.0

Overwatch 2

Captains report the score, the other captain agrees.

Manual reporting · 3.0

Rainbow Six Siege

Captains report the score, the other captain agrees.

Up in five minutes.

One Docker Compose file runs the web app, the API and the database. Add your Steam API key to .env, open http://localhost:3069 and create a tournament.

# no clone needed: download the compose file and startmkdir autotournament && cd autotournament
curl -fsSLO https://autotournament.gg/docker-compose.yml
cat > .env <<EOF
FRONTEND_BASE_URL=http://localhost:3069
SESSION_SECRET=$(openssl rand -base64 32)
SERVER_TOKEN=$(openssl rand -base64 24 | tr -d '=+/')
DB_PASSWORD=$(openssl rand -base64 18 | tr -d '=+/')
EOF
docker compose pull
docker compose up -d