Skip to content

Ployer

Release Build status Commit activity License

CTF Challenge deployment tool for our custom challenge format

Quick Start

To install Ployer, you can use uv:

uv sync
# or
uv pip install ployer

You will need to set your docker context to the host where you want to deploy your challenges. See the docker documentation for more information on how to do this. Additionally, if pushing to a private registry, you will need to ensure that you are logged in to the registry using docker login.

Then, you can use the ployer command to deploy your challenges:

# To deploy all challenges to a swarm cluster and add them to a CTFd instance with static scoring.
ployer --run --host challs.example.com --registry registry.ctfd.example.com --type static --runner swarm \
    --ctfd "https://ctfd.example.com ctfd_APIKEYTHATSLONG"

# To deploy all challenges with 'test' in their name as a regular docker container
ployer --run "1" --host challs.example.com --runner docker

# To stop all challenges on a swarm cluster
ployer --stop --host challs.example.com --runner swarm

NOTE: if a challenge has instanced = true, then it will (currently) require the connected docker host to be a swarm cluster.