Skip to content

Purpose of rCTF

ethanwu10 edited this page Apr 10, 2020 · 13 revisions

Design Goals

We have designed rCTF mainly with these attributes in mind:

  • performance
    • all backend services should be horizontally scalable, supporting CTF events of any size
    • time-consuming jobs should be run asynchronously, and results should be heavily cached
    • the UI should be as lightweight as possible while still looking decent
  • simplicity
  • customizability
    • everything about your event is configurable through a config file
    • you can access data about your CTF through the CLI management tool.

We have also put thought into these aspects:

  • integrability
    • our platform integrates with rDeploy to make challenge deployments trivial
    • rCTF supports SMTP server configuration
  • high code quality
    • all PRs require a reviewer
    • we've discussed/debated every feature we've added before beginning to write code
  • security
    • we're CTF folks and we (usually) aren't stupid. If you find an issue, please report it to us

What do we think about other platforms?

  • most have very low performance by default, do not cache properly, or require extensive client-side analysis
  • many have heavy UIs that strangle weak hardware or low-performance networks
  • it is often difficult to setup other platforms, and especially to deploy challenges