Formatter Validator Minifier Escape / Unescape JSON ↔ String JSON ↔ YAML JSON → CSV NDJSON / JSON Lines JSON → Types JSON ↔ XML JSON Diff JSON Patch Canonicalize (RFC 8785) Schema Validator Schema Generator JSONPath Tester JWT Decoder JSON Errors Schemas More Tools
JSONTools / Schema registry / ctfd-setup configuration file
Schema registry

ctfd-setup configuration file

CTFer.io ctfd-setup utility configuration file

.ctfd.yaml

Check your file against this schema

Opens the validator with this schema already loaded. Paste your .ctfd.yaml and it validates in your browser — nothing is uploaded.

Validate a .ctfd.yaml → View raw schema

Fields

Generated directly from the schema, following local $refs, to two levels of nesting.

Field Type Description
appearancerequiredobjectAppearance of the CTFd
appearance.namerequiredstringThe name of your CTF, displayed as is
appearance.descriptionrequiredstringThe description of your CTF, displayed as is
appearance.default_localestringThe default language for the users
themeobjectTheme displayed to end-users
theme.logooneOf
theme.small_icononeOf
theme.namestringThe frontend theme name
default: "core"
theme.colorstringThe frontend theme color
theme.headeroneOf
theme.footeroneOf
theme.settingsoneOf
accountsobjectAccounts parameters, like rate limiting or default permissions
accounts.domain_whiteliststringThe domain whitelist (a list separated by colons) to allow users to have email addresses from
accounts.domain_blackliststringThe domain blacklist (a list separated by colons) to blocks users to have email addresses from
accounts.verify_emailsbooleanWhether to verify emails once a user register or not
accounts.team_creationbooleanWhether to allow team creation by players or not
accounts.team_sizeintegerMaximum size (number of players) in a team
accounts.password_min_lengthintegerMinimal length of passwords
accounts.num_teamsintegerThe total number of teams allowed
accounts.num_usersintegerThe total number of users allowed
accounts.team_disbandingstringWhether to allow teams to be disbanded or not. Could be inactive_only or disabled
accounts.incorrect_submissions_per_minuteintegerMaximum number of invalid submissions per minute (per user/team). We suggest you use it as part of an anti-brute-force strategy (rate limiting)
accounts.name_changesbooleanWhether a user can change its name or not
challengesobjectChallenge-related configurations
challenges.view_self_submissionsrequiredbooleanWhether a player can see itw own previous submissions
challenges.max_attempts_behaviorrequiredstringThe behavior to adopt in case a player reached the submission rate limiting
default: "lockout"
one of: "lockout", "timeout"
challenges.max_attempts_timeoutrequiredintegerThe duration of the submission rate limit for further submissions
challenges.hints_free_public_accessrequiredbooleanControl whether users must be logged in to see free hints
challenges.challenge_ratingsrequiredstringWho can see and submit challenge ratings
default: "public"
one of: "public", "private", "disabled"
pagesobjectPages global configuration
pages.robots_txtoneOf
pages.additionalarray
major_league_cyberobjectMajorLeagueCyber credentials to register the CTF
major_league_cyber.client_idstringThe MajorLeagueCyber OAuth ClientID
major_league_cyber.client_secretstringThe MajorLeagueCyber OAuth Client Secret
settingsobjectSettings for resources visibility
settings.challenge_visibilitystringThe visibility for the challenges. Please refer to CTFd documentation (https://docs.ctfd.io/docs/settings/visibility-settings/)
default: "private"
one of: "public", "private", "admins"
settings.account_visibilitystringThe visibility for the accounts. Please refer to CTFd documentation (https://docs.ctfd.io/docs/settings/visibility-settings/)
default: "public"
one of: "public", "private", "admins"
settings.score_visibilitystringThe visibility for the scoreboard. Please refer to CTFd documentation (https://docs.ctfd.io/docs/settings/visibility-settings/)
default: "public"
one of: "public", "private", "admins"
settings.registration_visibilitystringThe visibility for the registration. Please refer to CTFd documentation (https://docs.ctfd.io/docs/settings/visibility-settings/)
default: "public"
one of: "public", "private", "admins"
settings.pausedbooleanWhether the CTFd is paused or not
securityobjectSecurity of contents and accesses
security.html_sanitizationbooleanWhether to turn on HTML sanitization or not
security.registration_codestringThe registration code (secret) to join the CTF
emailobjectEmail rules and server credentials
email.registrationrequiredobject
email.registration.subjectstringSubject of the email
email.registration.bodystringBody (or content) or the email
email.confirmationrequiredobject
email.confirmation.subjectstringSubject of the email
email.confirmation.bodystringBody (or content) or the email
email.new_accountrequiredobject
email.new_account.subjectstringSubject of the email
email.new_account.bodystringBody (or content) or the email
email.password_resetrequiredobject
email.password_reset.subjectstringSubject of the email
email.password_reset.bodystringBody (or content) or the email
email.password_reset_confirmationrequiredobject
email.password_reset_confirmation.subjectstringSubject of the email
email.password_reset_confirmation.bodystringBody (or content) or the email
email.fromstringThe 'From:' to sent to mail with
email.serverstringThe mail server to use
email.portstringThe mail server port to reach
email.usernamestringThe username to log in to the mail server
email.passwordstringThe password to log in to the mail server
email.tls_sslbooleanWhether to turn on TLS/SSL or not
email.starttlsbooleanWhether to turn on STARTTLS or not
timeobjectTime settings of the CTF
time.startstringThe start timestamp at which the CTFd will open
time.endstringThe end timestamp at which the CTFd will close
time.freezestringThe freeze timestamp at which the CTFd will remain open but won't accept any further submissions
time.view_afterbooleanWhether allows users to view challenges after end or not
socialobjectSocial network configuration
social.sharesbooleanWhether to enable users share they solved a challenge or not
social.templateoneOf
legalobjectLegal contents for players
legal.tosrequiredobject
legal.tos.urlstringThe URL to access the content
legal.tos.contentoneOf
legal.privacy_policyrequiredobject
legal.privacy_policy.urlstringThe URL to access the content
legal.privacy_policy.contentoneOf
adminrequiredobjectAdmin accesses
admin.namerequiredoneOf
admin.emailrequiredoneOf
admin.passwordrequiredoneOf
modestringThe mode of your CTFd, either users or teams
default: "users"
one of: "users", "teams"
uploadsarray

What we found in this schema

Specification sections for the keywords in this schema

Keyword Document Section
$defsJSON Schema Core, draft 2020-12§8.2.4 — Schema Re-Use With "$defs"
$idJSON Schema Core, draft 2020-12§8.2.1 — The "$id" Keyword
$refJSON Schema Core, draft 2020-12§8.2.3.1 — Direct References with "$ref"
$schemaJSON Schema Core, draft 2020-12§8.1.1 — "$schema"
additionalPropertiesJSON Schema Core, draft 2020-12§10.3.2.3 — "additionalProperties"
defaultJSON Schema Validation, draft 2020-12§9.2 — "default"
descriptionJSON Schema Validation, draft 2020-12§9.1 — "title" and "description"
enumJSON Schema Validation, draft 2020-12§6.1.2 — "enum"
itemsJSON Schema Core, draft 2020-12§10.3.1.2 — "items"
oneOfJSON Schema Core, draft 2020-12§10.2.1.3 — "oneOf"
propertiesJSON Schema Core, draft 2020-12§10.3.2.1 — "properties"
requiredJSON Schema Validation, draft 2020-12§6.5.3 — "required"
typeJSON Schema Validation, draft 2020-12§6.1.1 — "type"

Documents

Attribution

This schema comes from SchemaStore, distributed under the Apache License 2.0. Copyright 2015–present Mads Kristensen and contributors. View the original file. The field table and audit on this page are generated by JSONTools.tools; the schema itself is unmodified.

← All schemas