Skip to content

CTF config

Note

Config files can be either YAML (ctf.yml) or JSON (ctf.json).

A CTF config file must follow the shown syntax:

kind: ctf
name: fake-ctf
teams_file: null
challenges: []
deployments:
    internal_domain: fake.ctf
    environment: testing
    provider: gcp
    gcp:
        node_count: 1
        region: europe-west1
        machine_type: e1-standard-2
        project: change-this-123
        zone: europe-west1-b
    azure: null

kind

The type of the config, either ctf or challenge.

name

The name of the CTF.

teams_file

The path of the teams file for the CTF.

challenges

A list of the paths of the challenges to be deployed with the CTF:

challenges:
    - ./challenges/my-challenge
    - ./challenges/other-challenge

deployments

The main part of a CTF config.

internal_domain

The root domain name to deploy the challenges on.

environment

The CTF environment, one of:

  • testing
  • production

provider

The provider to use, must be one of:

  • gcp
  • azure (not implemented yet)
  • local (not implemented yet)

Note

If you are using one provider, you must mark as null the others following attributes, of course CTFKit will do it automatically.

gcp (optionnal)

The configuration of GCP.

node_count

The number of nodes to deploy.

region

The region of the CTF, ex. europe-west1.

machine_type

The type of the machine, ex. e1-standard-2.

project

The GCP project's ID.

zone

The zone of the node(s), ex. europe-west1-b.

azure (optionnal) (not implemented yet)

The configuration of Azure.