Overview
Deploybot is the application responsible for receiving application (i.e. challenge) deployment requests from CTFd. It receives deployment requests from CTFd, schedules that deployment on an underlying cluster and then makes the challenge available via a reverse proxy. Once the application is deployed the connection information is relayed to the requesting user.
Components
deploybot
deploybot is the application responsible for receiving application deployment requests from CTFd. It receives deployment requests from CTFd, schedules that deployment on an underlying Docker Swarm cluster, making the application available via sniproxy, and then providing the connection information to the requesting user.
sniproxy
sniproxy is the reverse proxy that sits in front of deployed challenge services for Hosted CTFd and self hosted deployments of CTFd-Enterprise and deploybot.
snibridge
snibridge is a sister application to sniproxy. snibridge is used to allow TCP clients to connect to TLS SNI services. Clients like netcat don't support TLS SNI so snibridge will accept connection from tools like netcat on a random port and then map it to an SNI enabled connection on sniproxy.
Note: In the provided docker-compose.yml
example snibridge is commented out as it requires a significant number of ports to be open. The end user is free to uncomment it or schedule it outside of the provided docker-compose.yml
.