Building fully automated CTF infrastructure
Tip
Looking for the CTF Platform?
CTF Pilot's CTF Platform is called CTFp. You can find more information about CTFp in the CTFp repository.
Looking for how to develop challenges for the CTF Pilot platform?
You can find information about developing challenges in the challenge-toolkit, Challenge schema, and Challenges template repository.
CTF Pilot provides a number of projects that focus on different parts of the infrastructure.
| Project | Description | Latest Release |
|---|---|---|
| CTFp | CTF Pilot's CTF Platform | |
| challenge-toolkit | CTF Pilot's Challenge Toolkit | |
| challenge-ci | CTF Pilot's Challenge CI | |
| kube-ctf | Challenge manager by DownUnderCTF | |
| ctfd | CTF Pilot's CTFd configuration | |
| ctfd-kubectf-plugin | CTFd plugin for Kube-CTF | |
| ctfd-manager | CTF Pilot's CTFd Manager | |
| discord-bot | CTF Pilot's Discord Bot | |
| challenge-schema | CTF Pilot's Challenge Schema | |
| page-schema | CTF Pilot's Page Schema | |
| instancing-fallback | Fallback service for challenge instancing | |
| error-fallback | Fallback service for handling errors |
To support the projects, CTF Pilot also provides the following templates:
| Project | Description |
|---|---|
| challenges-template | CTF Pilot's Challenge Repository Template. An example is available at challenges-example. |
| Challenges Project board Template | CTF Pilot's GitHub Project board template for managing challenges. An example is available at Challenges example. |
The following diagram roughly illustrates the dependencies between the various CTF Pilot projects:
The CTF Pilot infrastructure is designed around DevOps principles, utilizing GitOps workflows, Infrastructure as Code (IaC), and Continuous Integration/Continuous Deployment (CI/CD) pipelines.
The architecture is split into two main categories:
- CTF Platform: This includes the core CTF Platform (CTFp) and its associated services, such as the CTFd Manager, Discord Bot, and CTFd configuration.
- Challenge Management: This encompasses tools and services for challenge development, deployment, and management, including the Challenge Toolkit, Challenge CI, Kube-CTF, and related schemas.
The Platform architecture diagram illustrates how CTFp orchestrates the various components into the collected platform, which runs in Kubernetes.
To learn more about the CTF Platform architecture, please visit the CTFp repository.
The Challenge Management architecture diagram illustrates how challenges are managed, continuously configured and deployed within the CTF Pilot infrastructure.
You can learn more about the challenge architecture in the CTFp repository, CTF Pilot's Challenge Toolkit, and CTF Pilot's Challenges Template. An example challenges repository can be found at CTF Pilot's Challenges example repository.
We welcome contributions of all kinds—from code and documentation to bug reports and feedback!
CTF Pilot includes both open-source and dual-licensed projects. To maintain the ability to distribute contributions across all our licensing models, all code contributions require signing a Contributor License Agreement (CLA).
Please check the Contribution Guidelines (CONTRIBUTING.md) within the specific project repository you are working on for detailed guidelines. You can review the CLA here. CLA signing happens automatically when you create your first contribution.
In order to keep track of contributions, we use GitHub Projects for project management.
One project board is created for the whole CTF Pilot project, which includes all repositories.
This can be found at CTF Pilot Project Board.
The project board is the north star for the project, leading what should be worked on next.
To shortly summarize the status columns:
- Specification: New ideas and proposals that are being specified.
- Backlog: Approved tasks that have been specified but might need a bit more planning and refinement.
- Ready: Tasks that are ready to be picked up by contributors.
- In Progress: Tasks that are currently being worked on.
- In Review: Tasks that are completed and are awaiting review.
- Done: Completed tasks that have been merged and deployed.
We expect all contributors to adhere to our Code of Conduct to ensure a welcoming and inclusive environment for all.
CTF Pilot started as a CTF Platform project, originating in Brunnerne.
CTF Pilot is owned and maintained by The0Mikkel.