No description
Find a file
2026-02-10 15:15:44 -07:00
.github fix(docs): simplify docs versioning workflow 2026-02-10 15:15:44 -07:00
docs-site feat(docs): add configurable rate limiting and external docs 2026-02-10 15:11:37 -07:00
drizzle refactor(documents): migrate from IndexedDB to server-backed storage with caching 2026-02-08 11:15:57 -07:00
public update(auth): enhance rate limiting with device/IP backstops and improve UI 2026-01-25 14:38:31 -07:00
scripts feat(storage): implement S3/SeaweedFS blob storage for documents 2026-02-10 12:29:15 -07:00
src feat(docs): add configurable rate limiting and external docs 2026-02-10 15:11:37 -07:00
tests feat(storage): implement S3/SeaweedFS blob storage for documents 2026-02-10 12:29:15 -07:00
.env.example feat(docs): add configurable rate limiting and external docs 2026-02-10 15:11:37 -07:00
.gitattributes Fix check mark in SettingsModal 2025-02-11 21:31:11 -07:00
.gitignore feat(storage): implement S3/SeaweedFS blob storage for documents 2026-02-10 12:29:15 -07:00
Dockerfile feat(storage): implement S3/SeaweedFS blob storage for documents 2026-02-10 12:29:15 -07:00
drizzle.config.pg.ts refactor(db): remove conditional database usage from API layer 2026-02-03 12:17:30 -07:00
drizzle.config.sqlite.ts fix(db): select drizzle config for migrations 2026-01-27 16:53:58 -07:00
empty-module.ts First push 2025-01-18 04:58:57 -07:00
eslint.config.mjs First push 2025-01-18 04:58:57 -07:00
LICENSE Initial commit 2025-01-18 00:36:14 -07:00
next.config.ts feat(auth): add user authentication and rate limiting 2026-01-24 17:36:11 -07:00
NOTICE.txt docs: add third-party license notices 2026-01-15 11:04:59 -07:00
package.json feat(docs): add configurable rate limiting and external docs 2026-02-10 15:11:37 -07:00
playwright.config.ts refactor(documents): migrate from IndexedDB to server-backed storage with caching 2026-02-08 11:15:57 -07:00
pnpm-lock.yaml feat(storage): implement S3/SeaweedFS blob storage for documents 2026-02-10 12:29:15 -07:00
postcss.config.mjs First push 2025-01-18 04:58:57 -07:00
README.md feat(docs): add configurable rate limiting and external docs 2026-02-10 15:11:37 -07:00
tailwind.config.ts fix(tailwind): fix footer layout and tailwind config 2025-11-22 16:32:03 -07:00
tsconfig.json feat(docs): add configurable rate limiting and external docs 2026-02-10 15:11:37 -07:00

GitHub Release License Docs Playwright Tests Docs Check

GitHub Stars GitHub Forks Discussions

📄🔊 OpenReader WebUI

OpenReader WebUI is an open source, self-host-friendly text-to-speech document reader built with Next.js for EPUB, PDF, TXT, MD, and DOCX with synchronized read-along playback.

Get started in the docs.

Highlights

  • 🎯 Multi-provider TTS with OpenAI-compatible endpoints (OpenAI, DeepInfra, Kokoro, Orpheus, custom).
  • 📖 Read-along playback for PDF/EPUB with sentence-aware narration.
  • ⏱️ Word-by-word highlighting via optional whisper.cpp timestamps.
  • 🛜 Sync + library import to bring docs across devices and from server-mounted folders.
  • 🗂️ Flexible storage with embedded SeaweedFS or external S3-compatible backends.
  • 🎧 Audiobook export in m4b/mp3 with resumable chapter processing.
  • 🐳 Self-host friendly with Docker, optional auth, and automatic startup migrations.

🚀 Start Here

Goal Link
Run with Docker Docker Quick Start
Develop locally Local Development
Configure auth Auth
Configure SQL database SQL Database
Configure object storage Object / Blob Storage
Configure TTS providers TTS Providers
Run Kokoro locally Kokoro-FastAPI
Get support or contribute Support and Contributing

🧭 Community

📜 License

MIT. See LICENSE.