Skip to content
0xRinx edited this page Sep 3, 2026 · 1 revision

What do I need to run a lab?

Docker with Compose v2, and python3 for the flag checker. Clone, enter a lab, docker compose up -d, open the host port.

Do I need an account?

No. There is no scoring server. You verify solves locally.

Can I read the source to find the flag?

Yes. Reading the lab source is a legitimate solve. Open labs work that way. The repository stores only the SHA-256 hash; the plaintext lives inside the service.

What is the flag format?

duck{...}. Lowercase letters, digits, and underscores between the braces, 16 to 40 characters.

How do I grade a lab?

A four-tier ladder from easy to insane. Grades describe action, not time. See Tracks and Difficulty.

How do I write my own lab?

Copy labs/_template/, fill it in, run the validator, open a pull request. See Authoring a Lab.

What does CI check?

Structure, metadata, and flag hygiene. With --compose it also runs docker compose config. A lab that passes can merge.

Can I use python:latest?

No. Pin base images to full version tags. python:3.12-alpine yes, python:latest no.

What should I do with a broken lab?

Open an issue with the lab issue form, or a pull request with a fix. The vulnerabilities inside labs are the product and need no report.

What license covers my contribution?

By opening a pull request you agree your code falls under Apache-2.0 and your written content under CC-BY-4.0. See the README for the split.

Where do writeups go?

Anywhere you like. Publish them on your own site and link the lab so other people can follow your path.

Clone this wiki locally