Providers

Configure services for captcha, email, uploads, scoring, moderation, and more.

Edit this page View Markdown

Providers connect rCTF to services such as email, object storage, captcha, and scoring. You choose an implementation with name and configure it through options.

Provider format

All providers follow the same configuration pattern:

providerField:
name: provider-type/provider-name
options:
key: value

The name selects the provider, while options contains its settings. Most of those settings can also be supplied through environment variables.

Available providers

Type Config Field Available Providers Default
Captcha captcha.provider captcha/recaptcha, captcha/hcaptcha, captcha/turnstile None (disabled)
Email email.provider emails/smtp, emails/ses, emails/postmark, emails/mailgun None (disabled)
Uploads uploadProvider uploads/local, uploads/s3, uploads/gcs uploads/local
Scoring scoreProvider scores/classic, scores/sekai, scores/steep, scores/jammy, scores/genni, scores/legacy scores/classic
Moderation avatarsModeration.provider moderation/openai None (disabled)
Messages* bloodBot.destinations[].provider messages/discord, messages/telegram None (disabled)
Analytics analytics.provider analytics/google, analytics/cloudflare None (disabled)
Instancer instancers instancers/docker, instancers/k8s None (disabled)
Admin Bot adminBot.provider admin-bots/rctf-ts None (disabled)

Providers marked “None (disabled)” are optional. Their features remain unavailable until a provider is configured.

* Unlike the other providers, message providers are not selected by a top-level config field. They are nested inside each blood bot destination entry, so the same deployment can post to multiple destinations using different providers.

Type to search.