Skip to content plugin for CTFd
Python HTML JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This repository includes the plugin necessary for making CTFd behave in the way that requires. It also includes a custom docker-compose.yml file for CTFd.


git clone
cp pwn-college/docker-compose.yml CTFd
cp -r pwn-college/plugins/pwncollege CTFd/CTFd/plugins

Modify CTFd/plugins/pwncollege/ to correct, unique instance name. Modify CTFd/docker-compose.yml with correct VIRTUAL_HOST and LETSENCRYPT_HOST.

docker build -t pwncollege_challenge pwncollege/challenges

cd CTFd
docker-compose up -d

docker run --detach --name nginx-proxy --publish 80:80 --publish 443:443 --volume /etc/nginx/certs --volume /etc/nginx/vhost.d --volume /usr/share/nginx/html --volume /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

docker run --detach --name nginx-proxy-letsencrypt --volumes-from nginx-proxy --volume /var/run/docker.sock:/var/run/docker.sock:ro --env "" jrcs/letsencrypt-nginx-proxy-companion

docker network connect ctfd_default nginx-proxy

It may be something other than ctfd_default, depending on instance.

For container access (/etc/ssh/sshd_config):

Match User ctf
      AuthorizedKeysCommand /opt/pwn-college/ ctfd_db_1 ctf
      AuthorizedKeysCommandUser root
      X11Forwarding no
      AllowTcpForwarding no

It may be something other than ctfd_db_1, depending on instance. It may be something other than ctf, depending on instance.

You can’t perform that action at this time.