Repolode
evroon

evroon/bracket

Self-hosted tournament management system with single elimination, round-robin and Swiss formats, drag-and-drop scheduling and public dashboards.

Open-source alternative to:Challonge

Stars
1,752
Forks
183
Open issues
65
Last commit
2 days ago

What is it?

Bracket is a self-hosted tournament system for organizing competitions. It is written in async Python with FastAPI on the backend and a Vite and Mantine frontend. Organizers can build a tournament structure made of multiple stages, each containing one or more groups or brackets, using single elimination, round-robin or Swiss formats.

Scheduling is handled through drag-and-drop: matches can be moved between courts or rescheduled to a different start time. Swiss tournaments are managed dynamically, with matches scheduled automatically. Teams and their players can be created and updated, and a single installation can host multiple clubs, each with several tournaments.

The project provides dashboard pages that can be shown publicly and customized with a logo. It runs with Docker Compose alongside PostgreSQL, or can be run directly with uv and pnpm. The interface language is chosen automatically from browser settings.

Key features

  • 01Supports single elimination, round-robin and Swiss formats.
  • 02Multi-stage tournaments with multiple groups or brackets per stage.
  • 03Drag-and-drop match scheduling across courts and start times.
  • 04Automatic match scheduling for dynamic Swiss tournaments.
  • 05Public dashboard pages customizable with a logo.
  • 06Multiple clubs, each with multiple tournaments.

Use cases

  • Organizing a sports league or club championship with group stages and playoffs.
  • Running a local esports or board game tournament with Swiss pairings.
  • Hosting a self-managed tournament system for a community or school with public result screens.

Quick start

  1. 1

    Clone the repository

    git clone git@github.com:evroon/bracket.git
  2. 2

    Enter the project folder

    cd bracket
  3. 3

    Start backend, frontend and postgres with Docker Compose

    sudo docker compose up -d

Things to know

  • Running the demo setup uses Docker and a default test login that must be changed for real use.
  • Licensed under AGPL-3.0, a copyleft license that requires sharing modified source code when run as a network service.

In collections

Topics

FAQ

What is bracket?
Self-hosted tournament management system with single elimination, round-robin and Swiss formats, drag-and-drop scheduling and public dashboards. Bracket is a self-hosted tournament system for organizing competitions. It is written in async Python with FastAPI on the backend and a Vite and Mantine frontend. Organizers can build a tournament structure made of multiple stages, each containing one or more groups or brackets, using single elimination, round-robin or Swiss formats.
Is bracket free to use? What license does it have?
bracket is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is bracket still maintained?
Actively maintained. The last commit to bracket was on Nov 5, 2026.
What can I use bracket for?
Organizing a sports league or club championship with group stages and playoffs. Running a local esports or board game tournament with Swiss pairings. Hosting a self-managed tournament system for a community or school with public result screens.
How do I install bracket?
Clone the repository: git clone git@github.com:evroon/bracket.git Enter the project folder: cd bracket Start backend, frontend and postgres with Docker Compose: sudo docker compose up -d
Where can I get bracket?
The source code and installation instructions are on GitHub: https://github.com/evroon/bracket

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects