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.
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
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.
Check out the docs
CTFHub
was created and maintained by @_hugsy_
, but kept fresh thanks to all the contributors.
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!
- The world flag images are downloaded from https://flagpedia.net/
- CTFPad: NodeJS project that is based on
etherpad-lite
(no MarkDown support).