feat(contact): add Cloudflare Turnstile captcha
Client renders explicit Turnstile widget (flexible, light theme) when PUBLIC_TURNSTILE_SITE_KEY is set. Token sent with form payload, server verifies via siteverify endpoint before forwarding to CMS. Skipped entirely when no site key configured (dev fallback). New i18n keys: contact_captcha_pending, contact_server_error_captcha. Deploy workflow forwards PUBLIC_TURNSTILE_SITE_KEY + TURNSTILE_SECRET. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -89,6 +89,8 @@ jobs:
|
||||
IMAGE_CACHE_DIR=/data/image-cache
|
||||
PUBLIC_UMAMI_SCRIPT_URL=https://cloud.umami.is/script.js
|
||||
PUBLIC_UMAMI_WEBSITE_ID=${{ secrets.PUBLIC_UMAMI_WEBSITE_ID }}
|
||||
PUBLIC_TURNSTILE_SITE_KEY=${{ secrets.PUBLIC_TURNSTILE_SITE_KEY }}
|
||||
TURNSTILE_SECRET=${{ secrets.TURNSTILE_SECRET }}
|
||||
ENVEOF
|
||||
|
||||
- name: Pull and restart container
|
||||
|
||||
Reference in New Issue
Block a user