Introduction
Raya is a free, feature-rich and extensible CTF platform written in Rust. It's designed to be self-hosted and work with Docker or Kubernetes to spin up per-user challenge instances. You can also use Lua extensions to tweak and extend how the platform behaves.
Overview
Once you've set up the platform, you can start by creating an event for your contest or a lab for practice challenges. Users can sign up, join a team, and register for the event. After that, you can add challenges to the event or lab you made. When the event kicks off, users will see the challenges and can deploy their own unique instance for each one. For example, if you're hosting web challenges, every user gets a personal link to their own instance. This is handled through Docker or Kubernetes.
This setup lets you do cool stuff like:
- Generate a unique random flag for each user.
- Set up dynamic environment variables based on user or team info.
- Keep track of user activity for each instance.
Note: Raya is not released yet, I'm still working on implementing some features, and I plan to refactor the extensions subsystem.