some docs

master
Fox Wilson 2015-11-28 22:11:12 -05:00
parent cf39e80162
commit 189c01c639
2 changed files with 39 additions and 2 deletions

View File

@ -1,11 +1,23 @@
# ctf-platform
# Flagbase
This is the platform for TJCTF. It's (what I think is) the best of the MITRE,
CTFd, and picoCTF platforms rolled up into a Flask application.
I'm bad at naming things.
## Installation
You're going to want to edit `config.py`. The variable names should be fairly
self-explanatory.
You're going to want to create a file called `secrets`. It will look like this:
```yml
mailgun_url: https://api.mailgun.net/v3/tjctf.org
mailgun_key: key-asdflkjasdhflkjsdahflkhsdaklfjhasd
recaptcha_key: asdlkfjhasdlkjfhlsdakjfh
recaptcha_secret: sdakjfhsdalkfjhsdalkfjh
key: this can be anything you want, it is your flask secret_key
```
You should edit line 2 of database.py, unless you want to use SQLite. This uses
Peewee, so you can use any Peewee-supported database.
@ -13,13 +25,14 @@ You can create some problem YAML files that look like this:
```yml
name: Problem Name
author: ME!
category: Binary
description: binary binary binary binary. i love binary
points: 250
flags: "flag{whatever}"
```
Then add them with `./ctftool add-problem problem.yml` and it'll get put in the
Then add them with `./ctftool add-challenge problem.yml` and it'll get put in the
database.
Run `python app.py` and you have a server running. You probably want to deploy

24
docs/concepts.md Normal file
View File

@ -0,0 +1,24 @@
# Flagbase concepts
## Competition
A Competition is a single jeopardy-style CTF event. One instance of Flagbase
corresponds to one Competition.
## Challenge
A Challenge is a problem in a Competition. It either has a flag, or a grading
script. It has a fixed number of points.
## Team
A Team is a participant in a Competition. A Team can have multiple members, or
a single member. Flagbase does not keep track of team membership.
## ScoreAdjustment
Teams can score points in a Competition in two ways: they can either solve
Challenges, or have ScoreAdjustments set on them. ScoreAdjustments are
arbitrary point adjustments set by an AdminUser. They can be either positive or
negative.
## AdminUser
In the administrative interface, an AdminUser is an authorized user who can
perform certain maintenance actions on the Competition, Challenges, and Teams.
These actions can also be performed by the ctftool script, so an AdminUser can
also be considered someone with access to the database.