Replace Redis and BullMQ with NATS JetStream and KV for job queuing and state management in the compute worker service. Update environment variables, Docker Compose, and documentation to reflect the new message queue backend. Adjust dependencies and code to use NATS-based work queue and key-value storage for durable job processing. This change improves scalability and reliability of distributed compute workloads by leveraging NATS JetStream's work queue and persistence features. Documentation and configuration examples are updated to guide deployments using the new backend.
2.8 KiB
2.8 KiB
| id | title | slug |
|---|---|---|
| intro | Introduction | / |
OpenReader is an open source text-to-speech document reader built with Next.js. It provides a read-along experience with narration for EPUB, PDF, TXT, MD, and DOCX documents.
Previously named OpenReader-WebUI.
It supports multiple TTS providers including OpenAI, Replicate, DeepInfra, and custom OpenAI-compatible endpoints such as Kokoro-FastAPI, KittenTTS-FastAPI, and Orpheus-FastAPI.
✨ Highlights
- 🧱 Layout-aware PDF Parsing
- PP-DocLayoutV3 (ONNX) detects structured blocks with cross-page stitching and geometry-based highlighting for precise read-along sync and clean TTS segmentation
- ⏱️ Word-by-word Highlighting via ONNX Whisper alignment
- No external dependencies — runs in-process (
COMPUTE_MODE=local) or offloaded to a scalable NATS JetStream-backed worker (COMPUTE_MODE=worker)
- No external dependencies — runs in-process (
- ⚡ Segment-based TTS Playback
- Sentence-aware generation with cached audio segments, background preloading, and resumable playback across EPUB, PDF, TXT, MD, and DOCX
- 🎯 Multi-Provider TTS Support
- Self-hosted: Kokoro-FastAPI (multi-voice combinations), KittenTTS-FastAPI, Orpheus-FastAPI, or any custom OpenAI-compatible endpoint
- Cloud: OpenAI (
tts-1,tts-1-hd,gpt-4o-mini-tts), Replicate (built-in catalog + any model ID), DeepInfra (Kokoro-82M and others)
- 🎧 Audiobook Export in
m4b/mp3with resumable chapter generation - 🗂️ Flexible Backend — embedded SeaweedFS or S3-compatible storage, SQLite or Postgres, server library import, and device sync
- 🔐 Auth Optional — run no-auth for local use, or enable full user isolation with a claim flow for multi-user deployments
- 🎨 Customizable — 13 built-in themes (light and dark palettes), per-user TTS settings, and document handling controls
🧭 Key Docs
- Docker Quick Start
- Local Development
- Vercel Deployment
- Environment Variables
- Auth
- Database
- Object / Blob Storage
- Migrations
- Server Library Import
- TTS Providers
Source Repository
- GitHub: richardr1126/openreader