The picoCTF Platform 2 is the infrastructure on which picoCTF runs. The platform is designed to be easily adapted to other CTF or programming competitions.
picoCTF Platform 2 targets Ubuntu 14.04 LTS but should work on just about any "standard" Linux distribution. It would probably even work on Windows. MongoDB must be installed; all default configurations should work.
- Download VirtualBox (easiest, though others can work)
- Download Vagrant (vagrantup.com)
vagrant up
inside the repo- Wait 20 minutes
vagrant ssh
to connect to the VM- Run
devploy
to deploy the development version of the site - Go to port 8080 on the Host Machine
- Remember to always use 127.0.0.1:8080 not localhost:8080
Note: The competition has two modes: competition active and competition inactive. In inactive mode, there are no problems and only registration is available. To change what mode the competition is in, edit api/api/config.py and change the competition dates such that the current date is either inside or outside the range of the competition dates.
- Run
cd ~/api
- Run
python3 api_manager.py -v problems load /vagrant/example_problems/ graders/ ../problem_static/
- Run
python3 api_manager.py autogen build 100
- Run
devploy
The platform comes with a series of regression tests that should be run before any change is committed to the API. To run the tests:
vagrant ssh
into your virtual machine.- Run
devploy
to bring up an instance from your latest code. - To be able to import the API,
cd api
and run the tests with./run_tests.sh
All tests should pass with your changes.
A detailed explanation of the basics of the picoCTF Platform 2 can be found in our Getting Started Guide.
We are happy to help but no support is guaranteed.
Authors: Jonathan Burket, Tim Becker, Chris Ganas
Copyright: Carnegie Mellon University
License: MIT
Credits: David Brumley, Tim Becker, Chris Ganas, Peter Chapman, Jonathan Burket
Email: opensource@picoctf.com