a CTFd-like Server in go
At start, a config.yaml
is generated. You should edit it with the settings you need
The Challenge info Dir shall look like that:
├── chall-1
│ ├── meta.yaml
│ ├── README.md
│ └── SOLUTION.md
├── chall-2
│ ├── meta.yaml
│ ├── README.md
│ └── SOLUTION.md
For each Challenge you need a meta.yaml
, a README.md
and a SOLUTION.md
The meta.yaml
shall look like that:
points: <How many points the challenge should have>
uri: "<Protocol and user of your ssh Challenges (e.g. `ssh://chall-1@%s`>"
deps: [<Dependencies the Challenge has>]
flag: "<The flag>"
author: "<The author of the challenge>"
title: "(optional) the title of the challenge, else the directory name is used"
The README.md
and SOLUTION.md
are markdown files (syntax).
The SOLUTION.md
contents can only be seen by users who already solved the challenge
You need to have go
, sqlite3
and yarn
installed
git clone https://github.com/wtfd-tech/wtfd
cd wtfd
make
Now you can finally start wtfd by downloading it from the releases, giving it permissions chmod +x wtfd
and running it ./wtfd
WTFd is HTTP only, if you need HTTPS use a reverse proxy like Traefik or nginx
To make working with the TypeScript easier, you can do
make js-run
to automatically compile the JS on changes