Bracket: A Self-Hosted Tournament System for Sports and Events

Summary
Bracket is an open-source, self-hosted tournament system designed for ease of use and flexibility. It supports single elimination, round-robin, and Swiss formats, allowing users to build complex tournament structures with multiple stages. Developed with Python (FastAPI) for the backend and Next.js with Mantine for the frontend, Bracket offers a robust solution for managing sports and other competitive events.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Bracket is an open-source, self-hosted tournament system designed to simplify the management of sports and other competitive events. Built with a modern tech stack, including Python (FastAPI) for the backend and Next.js with Mantine for the frontend, it offers a robust and user-friendly platform. Bracket supports various tournament formats, such as single elimination, round-robin, and Swiss, allowing for flexible and complex event structures.

Installation
Getting Bracket up and running quickly is straightforward with Docker Compose. Follow these steps to clone the repository and launch the system:
git clone git@github.com:evroon/bracket.git
cd bracket
sudo docker compose up -d
This command will start the backend, frontend, and a PostgreSQL database instance. You can then access Bracket at http://localhost:3000. Default login credentials are test@example.org with password aeGhoe1ahng2Aezai0Dei6Aih6dieHoo. To populate the database with dummy data, run:
sudo docker exec bracket-backend pipenv run ./cli.py create-dev-db
For more detailed instructions, refer to the Quickstart documentation.
Examples
Bracket provides a comprehensive set of features for managing tournaments. You can create multiple clubs, each hosting various tournaments. Within each tournament, you can define stages, groups, and brackets, and easily manage teams and players. The intuitive drag-and-drop interface allows for effortless scheduling of matches to different courts or rescheduling to new times.
A live demo is available for free at bracketapp.nl/demo, where you can explore its functionalities firsthand. For a complete guide on organizing a tournament from start to finish, consult the usage guide.
Why Use Bracket?
Bracket stands out as an excellent choice for tournament management due to several key advantages:
- Self-Hosted Control: Maintain full control over your data and infrastructure by hosting the system yourself.
- Flexible Tournament Formats: Support for single elimination, round-robin, and Swiss formats caters to a wide range of competitive events.
- Intuitive Interface: The drag-and-drop functionality for matches and the ability to build complex tournament structures make management simple.
- Public Dashboards: Customizable dashboard pages can be presented to the public, keeping participants and spectators informed.
- Dynamic Swiss Tournaments: Automated scheduling for Swiss tournaments simplifies complex match pairings.
- Modern Tech Stack: Built with Python (FastAPI) and Next.js (Mantine), ensuring a performant and scalable application.
Links
- GitHub Repository: https://github.com/evroon/bracket
- Live Demo: https://www.bracketapp.nl/demo
- Documentation: https://docs.bracketapp.nl
- Quickstart Guide: https://docs.bracketapp.nl/docs/running-bracket/quickstart
- Releases: https://github.com/evroon/bracket/releases