// challenge instances for CTF organizers
Don't be the Bad CTF.
Every instance a team starts gets its own microVM, and your Docker containers run inside it as configured. Servers in major regions around the world keep your event running smoothly.
- isolation
- 1 VM per instance
- billing
- 10-minute ticks
- integration
- CTFd, REST API
01 right after the start
Most outages happenin the first minutes.
A made-up timeline from people who have been through plenty of CTFs.
- Organizers post "good luck, have fun" in #announcements
- Challenges unlock. 812 teams press "start instance" at the same time
- The one docker host hits load average 97. SSH stops answering
- The OOM killer picks the postgres behind web/blog-v2. Of course it does
- #general: "is chall down?" (×140)
- Someone reboots the box. Every running instance, and every half-written exploit, is gone
- Top CTFtime comment: "bad ctf, infra died".
$ diff bad-ctf.yml chall.run.yml
+1 microVM per instance
A fork bomb in one instance doesn't touch any other, not even the same team's next challenge. Each VM's kernel is isolated, and no VM shares the docker socket.
+Capacity reserved for your event
With a Reserved plan, memory and vCPU on dedicated servers are ready for your start time. No other event's instances are placed on the reserved capacity.
+A queue beats an error
If resources run short, requests go into a queue instead of failing. CTFd shows players their position and estimated wait.
+TTL and automatic cleanup
You set the lifetime per challenge: 10 minutes for a quick one, a few hours for a long one. You also choose whether players can extend. Expired instances are cleaned up automatically.
+Resource limits per VM
Per-VM resource limits mean one team using too much never affects the others.
02 platform
Everything your CTF infra needs,already running.
A microVM per instance
Every instance a player starts gets its own microVM. Isolated down to the kernel, so one instance never affects another.
read more →02Your compose files and CTFd
Push your docker-compose.yml as is, and connect through the CTFd plugin or the REST API.
read more →03Close to every player
Instances are deployed to whichever of our servers in major regions is closest to the player. Made for open CTFs with teams from everywhere.
read more →04Holds up at 09:00
Images are prebuilt on every server, failed servers are replaced right away, and an engineer is on call 24/7.
read more →05Flag sharing and AI review
Per-team logs surface flag sharing and automated AI play, and organizers are notified with the evidence we found.
read more →06Small events are free
Approved events get 30,000 credits free. Large ones still cost less than running your own servers on AWS.
read more →03 pricing
Credits, countedin 10-minute ticks.
Usage is charged in credits per 10-minute tick, with no base fee. Every event gets free credits, so small CTFs cost nothing, and large ones still come in under running your own servers on AWS or Google Cloud.
04 community support
Free instancesfor small CTFs.
Every approved event gets 30,000 credits free, and student and non-profit events get up to $250 more each. We fund this together with our sponsors.
- 30,000
- free credits for every approved event
- $250
- extra for student and non-profit events
- $0
- expected cost of a campus-sized CTF
Early access is paused.Reach us by email.
$ contact
We've paused early-access requests for now while we get the beta ready. For event plans or any questions, send us an email.
support@quickmetal.kr send an email →