This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Setup

Learn how to install the plugin in your CTFd.

    Goal

    This tutorial will guide you through the installation and configuration of the CTFd-chall-manager plugin to use chall-manager.

    Prerequisites

    Ensure you have chall-manager running before starting this tutorial. You can find the relevant documentation for setup instructions.

    Install the plugin

    If you are not using the docker-compose.yml file, you need to clone the repository into CTFd/CTFd/plugins/ctfd-chall-manager.

    # Clone the CTFd repository
    git clone https://github.com/CTFd/CTFd
    
    # Clone the plugin repository
    git clone https://github.com/ctfer-io/ctfd-chall-manager CTFd/CTFd/plugins/ctfd-chall-manager
    
    # (optional) Start Redis with Docker
    docker run -d -p 6379:6379 redis:<version>
    
    ## (optional) Configure plugin to use redis serveur
    export REDIS_URL=redis://localhost:6379
    
    # Start CTFd
    cd CTFd
    python3 -m venv venv 
    source venv/bin/activate 
    pip3 install -r requirements.txt
    python3 serve.py 
      
    # Clone the plugin repository
    git clone https://github.com/ctfer-io/ctfd-chall-manager
    
    # Create Docker network
    docker network create testing
    
    # (optional) Start Redis with Docker
    docker run -d --name redis-svc --network testing redis:<version>
    
    # Start CTFd with Docker
    docker run -d -p 8000:8000 [-e REDIS_URL=redis://redis-svc:6379] -v ./ctfd-chall-manager:/opt/CTFd/CTFd/plugins/ctfd-chall-manager --network testing ctfd/ctfd:<version>
      

    After completing this step, you should be able to access the plugin settings configuration in the CTFd UI.

    The plugin is visible in the UI

    If the plugin does not appear, verify your container volume mounts, then check the CTFd logs for import module entries, such as:

    The plugin is visible in the logs

    Configure the plugin to use chall-manager

    To connect the plugin to chall-manager, go to the plugin settings.

    The default configuration is:

    Default plugin configuration

    Adjust the plugin settings to match your environment, ensuring CTFd can communicate with chall-manager. For instance:

    CTFd can successfully reach chall-manager

    What’s next?

    Congratulations! At this point, your setup is ready to use chall-manager for your CTF events.