Skip to content
forked from hugsy/ctfhub

An OK way to manage CTFs for teams playing CTFs

Notifications You must be signed in to change notification settings

gcalmettes/ctfpad

 
 

Repository files navigation

CTFPad

What

A webapp for managing CTFs by teams playing CTFs. If you're looking for a platform for hosting CTFs use CTFd.

Build

For most people, this will suffice:

$ git clone https://github.com/hugsy/ctfpad
$ cd ctfpad
$ 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 .env.nginx-proxy.example .env
$ docker compose -f docker-compose-proxy.yml -f docker-compose.yml up -d --build

Features

A non-exhaustive list of features:

  • Full Django + Python 3 code
  • Clean (Bootstrap) interface
  • Key-in-hands setup via docker-compose
  • Fully built on top of HedgeDoc: smart markdown note mechanism, with tons of features
  • Possibility to create and play private CTFs
  • Internal statistic system to track members' involment + basic ranking system
  • Jitsi integration: instantly jump on video chat with your team mate
  • CTFTime integration: import CTF (+ data) from CTFTime in 2 clicks
  • Dark mode (duh!)
  • Basic search engine
  • Self-hosted Excalidraw integration: draw & share ideas with your team mates
  • Discord notifications
  • ...and more to come...

Community

Discord

Gallery

Note: the development of CTFPad is very active, the screenshots below might not reflect the exact state of the tool.

Dashboard

dashboard

View CTF

ctf ctf2

Import CTFs from CTFtime

ctftime

Challenge

challenge1

Statistics

stats

Why

I was fed up of not finding a tool to my liking to manage CTFs for teams playing so I wrote one. You should probably not use it 😋 I wrote it quickly because I really couldn't find something that fitted my needs. Some other projects of the sort of collaboration during CTFs:

  • CTFPad: nice project but NodeJS, so yeah. Also etherpad-lite doesn't support MarkDown easily. I like the name, so I took it shamelessly
  • rizzoma: a horrible outdated collaborative platform, poorly suited for CTFs.

I discovered HedgeDoc (aka. old CodiMD), an awesome platform, 100% Markdown, easily integrable. This project is just an eye-candy around using HedgeDoc as a central platform when doing a challenge collaboratively.

It's a toy project, so there's a lot of TODOs, features will be added (slowly).

Notes

Flag images are downloaded from https://flagpedia.net/

About

An OK way to manage CTFs for teams playing CTFs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 48.8%
  • HTML 48.1%
  • CSS 1.1%
  • Shell 0.9%
  • JavaScript 0.7%
  • Makefile 0.2%
  • Dockerfile 0.2%