Deploying a CTF
CTFFactory offers two deployment paths: downloading a bundle for self-hosting and deploying a fully managed CTFd instance. Both paths produce the same challenge content; the difference is who operates the infrastructure.
The Dual ZIP Bundle
Every export from CTFFactory β whether a single challenge or a full multi-challenge event β is packaged as a dual ZIP bundle. The archive contains two top-level folders:
ctf-export.zip
βββ organizer/
β βββ ctfd-import.zip # CTFd-compatible import package
β βββ challenges/
β β βββ web-001/
β β β βββ challenge.json # Metadata, flag, category, difficulty
β β β βββ description.md # Player-facing text
β β β βββ writeup.md # Solution guide (if generated)
β β β βββ hints.json # Hint content and unlock order
β β βββ crypto-001/
β β βββ ...
β βββ admin-credentials.txt # CTFd admin login for managed deployments
βββ player/
βββ challenges/
β βββ web-001/
β β βββ description.md # Player-facing text only
β βββ crypto-001/
β βββ ...
βββ event-info.md # Public event instructions
The organizer/ Folder
The organizer/ folder is for the event organizer only and must never be distributed to players. It contains:
- The CTFd import package (
ctfd-import.zip) β a fully formatted export ready to be uploaded to any CTFd instance via the standard import interface. - Per-challenge metadata files with flags, writeups, and hint content.
- Admin credentials if the export was produced from a managed deployment.
The player/ Folder
The player/ folder contains only the content that is safe to share publicly. Flags, writeups, and hint unlock keys are excluded. This folder is useful for distributing challenge files to participants who are not using the CTFd interface (for example, in a classroom setting where players work from local files).
[!WARNING] Always verify that the
player/folder does not contain flags or writeup content before distributing it. CTFFactory excludes sensitive fields automatically, but review the output if you have made manual edits.
Option A β Self-Hosted Deployment
Use the bundle if you operate your own CTFd instance or want full control over infrastructure.
- Download the dual ZIP bundle from the event or challenge detail page.
- Log in to your CTFd instance as an administrator.
- Navigate to Admin Panel β Config β Backup β Import and upload the
ctfd-import.zipfile from theorganizer/folder. - CTFd imports all challenges, categories, point values, and flag hashes in a single operation.
- Configure your event timing and visibility settings directly in CTFd.
[!TIP] CTFd supports Docker-based self-hosting. The CTFd documentation at docs.ctfd.io covers installation and upgrade procedures.
Option B β Managed CTFd Instance
For organizers who do not want to manage infrastructure, CTFFactory can provision and operate a CTFd instance on your behalf.
Provisioning a Managed Instance
- From the event page, click Deploy Managed.
- Select the deployment region closest to your participants.
- Choose a deployment duration (free tier: limited window; paid plans: extended or indefinite).
- Click Deploy. CTFFactory provisions the CTFd instance, imports all challenges, and configures scoring automatically. This typically completes in under two minutes.
- You receive two URLs:
- Player URL β share this with participants.
- Admin URL β your CTFd admin panel for monitoring and configuration.
Managed Instance Features
| Feature | Free Tier | Paid Plans |
|---|---|---|
| Deployment duration | Time-limited | Extended / indefinite |
| Custom domain | No | Yes |
| White-label branding | No | Yes |
| Participant limit | Capped | Higher or unlimited |
| Automatic TLS certificate | Yes | Yes |
Deploying a Single Challenge
The Challenge Playground supports deploying a single challenge online without creating a full CTF event.
- Open the challenge in the Playground.
- Click Deploy Online.
- CTFFactory provisions a minimal CTFd instance pre-loaded with just that challenge.
- Share the public URL. The deployment runs for the duration defined by your plan tier.
This mode is useful for sharing a challenge with a colleague, running a quick demo, or testing challenge quality in a live environment before adding it to a full event.
Auto-Deploy for Static Challenges
Challenges that require no server-side infrastructure (most Crypto, Forensics, OSINT, and Reverse Engineering challenges) support auto-deploy. In auto-deploy mode:
- Challenge files are served from CTFFactory's CDN.
- The CTFd instance is provisioned and connected to the file delivery automatically.
- No manual file upload step is required.
Dynamic challenges (Web, Binary Exploitation, OFFSEC) that require a live backend or container are handled through container orchestration on the managed infrastructure. Container health is monitored continuously and restarted automatically if a crash is detected.
After Deployment
Once deployed, manage your instance from the event detail page:
- Extend deployment β add time to a running managed instance.
- Download backup β export the current CTFd state including solve history.
- Teardown β shut down the managed instance and release resources.