67 lines
2.1 KiB
Markdown
67 lines
2.1 KiB
Markdown
# ColdCore
|
|
|
|
This is the platform for IceCTF. It is based off of the platform for TJCTF, [TJCSec/ctf-platform](https://github.com/TJCSec/ctf-platform), although with hefty changes.
|
|
|
|
## Installation
|
|
|
|
Install dependencies with `pip3 install -r requirements.txt`.
|
|
|
|
Edit `config.py` to your liking. 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
|
|
shell_host: shell
|
|
shell_username: shellaccounts
|
|
shell_privkey: path to private key used to log in
|
|
```
|
|
|
|
For production, create a file called `database` as well, with the settings
|
|
```
|
|
host: localhost
|
|
database: ctf
|
|
user: user
|
|
password: password
|
|
```
|
|
|
|
Then initiate the database with `./ctftool database create-tables`.
|
|
|
|
To run the server with production settings, set the environment variable `PRODUCTION=1` before running the server.
|
|
|
|
You can create some problem YAML files that look like this:
|
|
|
|
```yml
|
|
name: Problem Name
|
|
alias: problem alias
|
|
author: ME!
|
|
category: Binary
|
|
description: binary binary binary binary. i love binary
|
|
points: 250
|
|
flag: "flag{whatever}"
|
|
```
|
|
|
|
Then add them with `./ctftool challenges add problem.yml` and it'll get put in the
|
|
database.
|
|
|
|
Run `python3 app.py` and you have a server running. You probably want to deploy
|
|
it with `gunicorn` or similar, long-term.
|
|
|
|
## ctftool
|
|
|
|
You can run `./ctftool challenges scan ../ctf-problems/` and get a fully populated database
|
|
with information from all the problem.yml files, and automatically generated
|
|
static file names, and automatic substitutions for static file links in
|
|
problem.yml. More documentation on this to come soon.
|
|
|
|
## Contributing
|
|
|
|
There are some missing features in the platform, and if you would like to contribute, feel free to send pull requests!
|
|
|
|
If you find any issues or would like to send a feature request feel free to create an issue.
|