- Remove legacy TTS rate limit environment variables and migrate all related configuration to runtime settings managed via the Admin UI - Add runtime config keys for TTS rate limiting enable/disable and per-user/IP daily quotas - Refactor rate limiter and API routes to use runtime config for thresholds and enablement - Update AdminFeaturesPanel to allow editing TTS rate limiting and quota values in the UI - Add shared-provider-selection utility for consistent provider selection logic - Update documentation to reflect new runtime/admin configuration and remove obsolete env var docs - Add unit tests for rate limit runtime settings and provider selection BREAKING CHANGE: TTS rate limiting is now controlled via Admin → Site features; environment variables for TTS rate limiting are no longer supported and will be ignored.
1.5 KiB
1.5 KiB
| title |
|---|
| TTS Rate Limiting |
This page explains OpenReader's TTS character rate limiting controls.
Overview
- TTS rate limiting is disabled by default.
- Primary control is Settings → Admin → Site features → Disable TTS daily rate limiting.
- Optional first-boot seed:
RUNTIME_SEED_DISABLE_TTS_LIMIT=true. - Limits are enforced per day in UTC.
- Enforcement applies only when auth is enabled.
How enforcement works
When enabled, OpenReader enforces:
- Per-user daily character limits.
- IP backstop daily character limits.
- Anonymous device backstop tracking (cookie-based) to reduce limit resets.
If a request exceeds the active limit, the TTS API returns 429 with reset metadata for the next UTC day.
Required auth behavior
- Auth must be enabled (
BASE_URL+AUTH_SECRET) for TTS char limits to apply. - If auth is disabled, TTS character limits are effectively unlimited.
DISABLE_AUTH_RATE_LIMITonly affects Better Auth's own request throttling.DISABLE_AUTH_RATE_LIMITdoes not disable TTS character limits.
Runtime config + seed var
- First-boot seed toggle:
RUNTIME_SEED_DISABLE_TTS_LIMIT(default:true) - Per-user and IP backstop limit values are configured in Settings → Admin → Site features and stored in DB runtime settings.
Related docs
- TTS/rate-limit environment variables: Environment Variables
- Auth configuration: Auth
- Provider setup: TTS Providers