bot-mitigation component is registered by sitectl-isle for Islandora contexts. It uses the core sitectl Traefik bot-mitigation helper with ISLE’s Drupal router options. It adds the captcha-protect Traefik middleware to the Drupal router. Generic bot-mitigation environment controls live under core sitectl traefik; this component handles the Drupal route wiring. When enabled, requests to Drupal routes can be challenged with Cloudflare Turnstile before they reach Drupal.
It defaults to disabled.
Supported dispositions:
| Disposition | Meaning |
|---|---|
enabled | Load captcha-protect as a local Traefik plugin and apply it to Drupal routes. |
disabled | Leave Drupal routes without the captcha-protect challenge middleware. |
Enable During Create
Choose bot mitigation in the interactivesitectl create isle flow, or pass the flag directly:
off so existing automated create flows do not unexpectedly add a captcha challenge.
Enable On An Existing Site
docker-compose.yml, adds the captcha-protect middleware reference to the Drupal router, appends the middleware definition at the bottom of conf/traefik/drupal.yml, installs the local Traefik plugin source under conf/traefik/plugins/captcha-protect, and mounts the challenge template used by the plugin.
The ISLE plugin passes RouterName: "drupal" and RouterConfigPath: "conf/traefik/drupal.yml" to the core helper. Other app plugins can pass their own router options and override captcha-protect fields such as ProtectRoutes when registering and applying their bot-mitigation component.
Managed files
When enabled, the component manages:docker-compose.ymlTraefik command, mounts, and Turnstile environment defaultsconf/traefik/drupal.ymlDrupal router middleware reference andcaptcha-protectmiddleware definitionconf/traefik/plugins/captcha-protectlocal Traefik plugin sourceconf/traefik/challenge.tmpl.htmlchallenge page template
Turnstile Keys
By default, sitectl writes Cloudflare Turnstile test keys:TURNSTILE_SITE_KEY and TURNSTILE_SECRET_KEY in the site’s environment before deploying bot mitigation.
Local Plugin Source
Traefik’s recommended plugin setup normally specifies a plugin version and lets Traefik download the plugin assets from Traefik’s plugin discovery service when the Traefik container is created. ISLE avoids that production-time network dependency by mounting the captcha-protect plugin source locally:Disable
challenge.tmpl.html file from your checkout.
