Add a dedicated Admin Panel documentation page detailing management of shared TTS providers and site features via the admin UI. Update all TTS provider guides, environment variable references, and deployment docs to clarify the new runtime configuration model: environment variables serve as first-boot seeds only, with ongoing management handled through the admin interface. Revise sidebars and cross-links to include the new admin panel docs and clarify the distinction between legacy env-based and admin-managed configuration.
1.7 KiB
1.7 KiB
| title |
|---|
| Other |
Use any OpenAI-compatible TTS service with OpenReader, including self-hosted servers not covered by a dedicated guide.
Requirements
Your service must expose these endpoints:
GET /v1/audio/voicesPOST /v1/audio/speech
Known compatible implementations: Kokoro-FastAPI, KittenTTS-FastAPI, Orpheus-FastAPI.
Setup
Recommended (auth + admin): Settings → Admin → Shared providers
- Add a shared provider with type
custom-openai. - Set
API_BASEto your service base URL (typically ending in/v1). - Set API key if your service requires authentication.
- Set a default model/voice supported by your backend.
Legacy bootstrap seed (optional, first boot only):
API_BASE=http://your-tts-server/v1
API_KEY=optional-key-if-required
Or in-app via Settings → TTS Provider:
- Set provider to
Custom OpenAI-Like. - Set
API_BASEto your service's base URL (typically ending in/v1). - Set
API_KEYif your service requires authentication. - Choose a model and voice supported by your backend.
See TTS Providers for admin-shared vs per-user behavior.
:::warning TTS requests are server-side
API_BASE must be reachable from the Next.js server, not just the browser. In Docker, use container names or host.docker.internal.
:::
Troubleshooting
If voices don't load, check that /v1/audio/voices is reachable from the server and returns a valid response shape.