TTS-Arena-V2 / TURNSTILE.md
GitHub Actions
Sync from GitHub repo
f1a0148

A newer version of the Gradio SDK is available: 5.29.0

Upgrade

Cloudflare Turnstile Integration

TTS Arena supports Cloudflare Turnstile for bot protection. This guide explains how to set up and configure Turnstile for your deployment.

What is Cloudflare Turnstile?

Cloudflare Turnstile is a CAPTCHA alternative that provides protection against bots and malicious traffic while maintaining a user-friendly experience. Unlike traditional CAPTCHAs, Turnstile uses a variety of signals to detect bots without forcing legitimate users to solve frustrating puzzles.

Setup Instructions

1. Register for Cloudflare Turnstile

  1. Create a Cloudflare account or log in to your existing account
  2. Go to the Turnstile dashboard
  3. Click "Add Site" and follow the instructions
  4. Create a new site key
    • Choose "Managed" or "Invisible" mode (Managed is recommended for better balance of security and user experience)
    • Set an appropriate domain policy
    • Create the site key

Once created, you'll receive a Site Key (public) and Secret Key (private).

2. Configure Environment Variables

Add the following environment variables to your deployment:

TURNSTILE_ENABLED=true
TURNSTILE_SITE_KEY=your_site_key_here
TURNSTILE_SECRET_KEY=your_secret_key_here
TURNSTILE_TIMEOUT_HOURS=24
Variable Description
TURNSTILE_ENABLED Set to true to enable Turnstile protection
TURNSTILE_SITE_KEY Your Cloudflare Turnstile site key
TURNSTILE_SECRET_KEY Your Cloudflare Turnstile secret key
TURNSTILE_TIMEOUT_HOURS How often users need to verify (default: 24 hours)

3. Implementation Details

When Turnstile is enabled:

  • All routes and API endpoints require Turnstile verification
  • Users are redirected to a verification page when they first visit
  • Verification status is stored in the session
  • Re-verification is required after the timeout period
  • API requests receive a 403 error if not verified

Customization

The Turnstile verification page uses the same styling as the main application, providing a seamless user experience. You can customize the appearance by modifying templates/turnstile.html.

Troubleshooting

  • Verification Loops: If users get stuck in verification loops, check that cookies are being properly stored (ensure proper cookie settings and no browser extensions blocking cookies)
  • API Errors: If API clients receive 403 errors, they need to implement Turnstile verification
  • Missing Environment Variables: Ensure all required environment variables are set correctly