Skip to content
/ ctf Public

CTF website with support for many simultaneous contests.

License

Notifications You must be signed in to change notification settings

mcpt/ctf

Repository files navigation

mCTF

A platform to host as many CTF contests and problems as you want.

Features

  • Admin Interface to add Problems, Contests, Organizations, etc.
  • Contests for individuals, or enable participants to team up
  • Public Problems for everyone to view and solve outside of contests

Installation

Installation instructions are currently a work in progress. Feel free to join our Discord if you have any questions.

Development Setup

  1. Clone the repository

Using Poetry (Recommended)

  1. Run pip install poetry
  2. Run poetry install
  3. Run poetry shell
  4. Create a file called config.py with the contents of Docker Setup #2
  5. Run python manage.py migrate && python manage.py createsuperuser
  6. To start the server, run python manage.py runserver

Using Docker

  1. Go to mCTF/docker_config.py, Set DEBUG to True and root to "https://localhost:28730" as well as deleting import config2.
  2. docker build -t mctf .
  3. docker run -p 28730:28730 mctf
  4. docker exec -it <container_id> /bin/bash
. .venv/bin/activate
python manage.py migrate
python manage.py createsuperuser
  1. in the docker container, go to /public/scss and delete all *.css files (rm *.css)

Troubleshooting

  • If Django hangs while booting (e.g. no response comes from uWSGI, or worker is killed frequently in Gunicorn), it may be hanging trying to connect to the cluster.