Skip to content

sdslabs/playCTF

Repository files navigation

playCTF Logo

An all-in-one open source platform for hosting jeopardy style CTFs powered by Beast

Contents

Overview

playCTF is an all-in-one open source platform for hosting jeopardy style CTFs. It can be setup in under a minute and lets you pull challenge files straight from github, allowing you to shift your focus away from the infrastructure onto the actual challenges.

  • playCTF is the frontend service powered by Beast.
  • It is written in VueJS and integrates all the endpoints provided by Beast which makes deploying challenges a breeze.
  • There are different panels for admins and users which enable easy moderation of CTF competitions.

Visit https://beast.sdslabs.co/apiDocs/ for more details and documentation about the APIs.

Also check out the Beast source code at https://github.com/sdslabs/beast.

Features

  • Create your own challenges, categories, hints, and flags from the Admin Interface
    • Dynamic Scoring Challenges
    • Challenge plugin architecture to create your own custom challenges
    • Container based isolation of challenges
    • File uploads to the server
    • Hide challenges under maintenance / for any other reason
    • Automatic bruteforce protection
  • Quick and User-Friendly onboarding
  • Scoregraphs comparing the top 3 players and player progress graphs
  • CTF management on the go for activities like player banning, hint broadcasting, announcements and more
  • Exporting of CTF data for archival
  • Sandbox playground environment for realtime experience And a lot more...

Development

  • Install docker and docker-compose
  • Run docker-compose up --build -d to spin up the playctf container
  • Site can be accessed on localhost:8080

To run the application in development mode

npm i && npm run serve

Compiles and minifies for production

npm run build

Lints and fixes files

npm run lint

Contributing

We are always open for contributions. If you find any feature missing, or just want to report a bug, feel free to open an issue and/or submit a pull request regarding the same.

For more information on contribution, check out our docs.

Contact

If you have a query regarding the product or just want to say hello then feel free to visit chat.sdslabs.co or drop a mail at contact@sdslabs.co.in


Made with ❤️ by SDSLabs