CTFd Cloud

Best Self Hosted Alternatives to CTFd Cloud

A curated collection of the 2 best self hosted alternatives to CTFd Cloud.

Managed cloud hosting for CTFd: a hosted Capture The Flag competition platform providing challenge creation and deployment, scoring/leaderboards, user and team management, and event infrastructure without self-hosting.

Alternatives List

#1
Bracket

Bracket

Open-source, self-hosted tournament system for creating and managing Swiss, single‑elimination and round‑robin tournaments with scheduling, dashboards, team/club management and CSV import.

Bracket screenshot

Bracket is an open-source tournament management system designed to build, schedule and present tournaments. It supports common competition formats and provides an administrative UI plus public dashboards for publishing schedules and standings.

Key Features

  • Supports single-elimination, round-robin and Swiss formats with multi-stage tournament structures.
  • Multiple groups/brackets per stage and configurable tournament builder.
  • Drag-and-drop match scheduling (assign courts and reschedule start times).
  • Public-facing dashboards that display schedule and rankings, customizable with a logo.
  • Team, player and club management with the ability to create multiple clubs and multiple tournaments per club.
  • CSV import for bulk teams/players and utilities to create development/demo data.
  • Automatic scheduling support for Swiss tournaments (dynamic handling).
  • Docker / docker-compose quickstart for running backend, frontend and a Postgres instance.

Use Cases

  • Local sports clubs and leagues that need flexible brackets, scheduling and public scoreboards.
  • Esports or competitive gaming events requiring multi-stage tournaments and live public dashboards.
  • School, university or community competitions that need CSV import and rapid setup for matches and standings.

Limitations and Considerations

  • Language selection is automatic based on browser settings; there is no manual language chooser built into the UI as of current sources.
  • The public demo provided by the project is ephemeral (demo sessions are intended to expire and demo data is deleted after a short period).

Bracket is a feature-rich, open-source option for organizers who want full control over tournament structure and presentation. It is primarily packaged for self-hosted deployment with Docker and includes documentation and community discussion channels for support.

1.6kstars
130forks
#2
DOMjudge

DOMjudge

DOMjudge is an automated jury system for programming contests, providing submissions, judging, scoreboards, and admin tools for ICPC-style events.

DOMjudge screenshot

DOMjudge is an automated jury system for running programming contests such as ICPC-style competitions. It provides web interfaces for teams and jury, manages contest configuration, and automates judging while emphasizing usability and security.

Key Features

  • Team and jury web interfaces for submissions, clarifications, and contest management
  • Automated judging with configurable languages and problem definitions
  • Scoreboard and contest timing controls suitable for live events
  • Queue-based judging with support for multiple judge hosts
  • Modular architecture to add/maintain language runtimes and tooling

Use Cases

  • Organizing on-site or online competitive programming contests for universities or companies
  • Running ICPC-style regionals with multiple problems, teams, and judge machines
  • Hosting practice contests and training environments with repeatable judging

DOMjudge is a mature, widely used contest platform that helps organizers run reliable programming competitions end-to-end. It is best suited for events that need automated judging, robust jury workflows, and a controllable contest environment.

851stars
280forks

Why choose an open source alternative?

  • Data ownership: Keep your data on your own servers
  • No vendor lock-in: Freedom to switch or modify at any time
  • Cost savings: Reduce or eliminate subscription fees
  • Transparency: Audit the code and know exactly what's running