h4ckd0tm3 / ctfhub

An OK way to manage CTFs for teams playing CTFs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo

CTFHub

Where CTFs happen

Code style: black Licence MIT Python-Version 3.10 CTFHub on Discord

What is it?

A collaborative environment for teams playing CTFs. It provides out-of-the-box everything to manage and collaborate on the CTFs and challenges you and your team are working on.

Note: If you're looking for a platform for hosting CTFs use CTFd.

Features

A non-exhaustive list of features:

  • Full Django + Python 3.10 code
  • Clean (Bootstrap 5+) interface
  • Key-in-hands setup via docker-compose
  • Fully integrated around HedgeDoc: smart markdown note mechanism, with tons of features
  • Possibility to create and play private CTFs
  • Create "guests" to your CTFs
  • View CTF stats, and track members' involment through a cool podium ranking
  • Jitsi integration: instantly jump on video chat with your team mate
  • CTFTime integration: import CTF (+ data) from CTFTime in 2 clicks
  • CTFd/rCTF challenge(s) can optionally be pre-populated locally
  • Basic search engine
  • One step "challenge-notes" → "blog post" export feature
  • Public & Self-hosted Excalidraw integration: draw & share ideas with your team mates
  • Discord notifications
  • ...and more to come...
  • and of course, a Dark mode

Build

For most people, this will suffice:

$ git clone https://github.com/hugsy/ctfhub
$ cd ctfhub
$ cp .env.example .env
### CHANGE THE CREDENTIALS IN .env ###
$ nano .env
### BUILD EXCALIDRAW USING .env VARIABLES ###
$ make build
$ docker compose up -d --build

If you want to use SSL locally, follow the instructions to generate local SSL certificates and run:

$ cp scripts/proxy/.env.nginx-proxy.example scripts/proxy/.env
$ nano scripts/proxy/.env
### Edit the file to your need
$ docker compose -f scripts/proxy/docker-compose.yml -f ./docker-compose.yml up -d --build

If you're migrating from the first versions called ctpad, check out see PR #83 to migrate the data to the new environment, search the Setup > Migration part.

Gallery

Check out the docs

Contribution

CTFHub was created and maintained by @_hugsy_, but kept fresh thanks to all the contributors.

contributors-img

If you just like the tool, consider dropping on Discord (or Twitter or other) a simple "thanks", it is always very appreciated.

And if you can, consider sponsoring me - it really helps dedicating time and resources to the projects!

Credits and Links

About

An OK way to manage CTFs for teams playing CTFs


Languages

Language:Python 65.3%Language:HTML 33.5%Language:JavaScript 0.6%Language:CSS 0.4%Language:Makefile 0.1%Language:Dockerfile 0.1%Language:Shell 0.1%