Skip to content

Commit d8a5e1e

Browse files
committed
Update README.md
1 parent d839d3c commit d8a5e1e

File tree

2 files changed

+47
-56
lines changed

2 files changed

+47
-56
lines changed

README.md

Lines changed: 46 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,40 @@
11
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](#license)
22
[![Contributions Welcome](https://img.shields.io/badge/Contributions-Welcome-orange.svg)](../../pulls)
33

4-
# OpenReader WebUI
4+
# OpenReader WebUI 📄🔊
55

66
OpenReader WebUI is web-based reader Text-to-Speech capabilities, offering a TTS read along experience with narration for both PDF and EPUB documents. It can use any OpenAI compatible TTS endpoint, including [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI/tree/v0.0.5post1-stable).
77

8-
- 🎯 **TTS API Integration**: Compatible with OpenAI API TTS and Kokoro FastAPI TTS, enabling high-quality voice narration
9-
- 💾 **Local-First Architecture**: Secure document handling with IndexedDB browser storage - no server uploads required
10-
- 🔍 **Smart Text Processing**: Real-time sentence detection and synchronized text highlighting during playback
8+
- 🎯 **TTS API Integration**: Compatible with OpenAI text to speech API, Kokoro FastAPI TTS, or any other compatible service; enabling high-quality voice narration
9+
- 💾 **Local-First Architecture**: Uses IndexedDB browser storage - no server uploads required
10+
- 🛜 **Optional Server-side documents**: Manually upload documents to the next backend for all users to download
11+
- 🔍 **Smart Text Processing**: Splits content into sentence blocks (ePub tries to split at paragraphs)
1112
- 📚 **EPUB Support**: Read EPUB files with table of contents and synchronized text
1213
- 📄 **PDF Support**: Read PDF files with text extraction and page navigation
13-
-**Modern Tech Stack**: Built with Next.js, React, and Tailwind CSS
14+
-**Modern Tech Stack**: Built with Next.js, React, Tailwind CSS, and some Headless UI React
1415
- 🎨 **Customizable Experience**:
16+
- Set TTS API base URL (with optional API key)
1517
- Adjustable playback speed
16-
- Multiple voice options
17-
- Dark/light/system theme support
18+
- Multiple voice options (checks `/v1/audio/voices` endpoint)
19+
- Multiple app layout theme options
1820
- Persistent user settings
19-
- 📱 **Cross-Platform**: Responsive design works seamlessly across desktop and mobile devices
20-
21-
## **Demo**
2221

22+
## [**Demo**](https://openreader.richardr.dev/)
2323

2424

2525
https://github.com/user-attachments/assets/1bfc5fc4-8d66-4c71-a3c1-f3ec5b4f4b56
2626

2727

28-
2928
## 🐳 Docker Quick Start
3029

31-
```bash
32-
docker run --name openreader-webui -p 3003:3003 richardr1126/openreader-webui:latest
33-
```
34-
or with server-side doc storage:
35-
3630
```bash
3731
docker run --name openreader-webui \
3832
-p 3003:3003 \
3933
-v openreader_docstore:/app/docstore \
4034
richardr1126/openreader-webui:latest
4135
```
36+
> Note: The `openreader_docstore` volume is used to store server-side documents. You can mount a local directory instead. Or remove it if you don't need server-side documents.
37+
4238
Visit [http://localhost:3003](http://localhost:3003) to run the app.
4339

4440
### Using Docker Compose
@@ -58,6 +54,12 @@ services:
5854
restart: unless-stopped
5955
```
6056
57+
### ⬆️ Update Docker Image
58+
```bash
59+
docker stop openreader-webui && docker rm openreader-webui
60+
docker pull richardr1126/openreader-webui:latest
61+
```
62+
6163
## Dev Installation
6264

6365
### Prerequisites
@@ -97,61 +99,50 @@ services:
9799

98100
> Dev server runs on port 3000 by default, while the production server runs on port 3003.
99101
100-
#### Docker Supported Architectures
102+
103+
## 💡 Feature requests
104+
105+
For feature requests or ideas you have for the project, please use the [Discussions](https://github.com/richardr1126/OpenReader-WebUI/discussions) tab.
106+
107+
## 🙋‍♂️ Support and issues
108+
109+
For general questions, you can reach out to me on [Bluesky](https://bsky.app/profile/richardr.dev). If you encounter issues, please open an issue on GitHub following the template (which is very simple).
110+
111+
## 👥 Contributing
112+
113+
Contributions are welcome! Fork the repository and submit a pull request with your changes.
114+
115+
## ❤️ Acknowledgements
116+
117+
- [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) for the API wrapper
118+
- [react-pdf](https://github.com/wojtekmaj/react-pdf)
119+
- [react-reader](https://github.com/happyr/react-reader)
120+
- [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) for text-to-speech
121+
122+
## Docker Supported Architectures
101123
- linux/amd64 (x86_64)
102124
- linux/arm64 (Apple Silicon)
103125
- linux/arm/v7 (Raspberry Pi)
104126

105-
## **Features**
106-
- Real-time sentence by sentence text-to-speech via OpenAI API TTS, [Kokoro FastAPI TTS](https://github.com/remsky/Kokoro-FastAPI), or others compatible with the `/v1/audio/speech` endpoint
107-
- IndexedDB-powered local storage
108-
- Synchronized text highlighting during playback (using string similarity for best match on the page)
109-
- Configurable playback speed and voice options, which checks `/v1/audio/voices` for available voices
110-
- Click-to-skip on the same page for navigation
111-
- Responsive design with light, dark, and system themes
112-
- All configuration settings saved in IndexedDB
113-
114127
## Stack
115128

116129
- **Framework:** Next.js (React)
130+
- **Containerization:** Docker
117131
- **Storage:** IndexedDB (in browser db store)
118132
- **PDF Processing:**
119133
- [react-pdf](https://github.com/wojtekmaj/react-pdf)
120134
- [pdf.js](https://mozilla.github.io/pdf.js/)
121-
- Compromise for text analysis
135+
- [compromise](https://github.com/spencermountain/compromise): NLP library for sentence splitting
122136
- **EPUB Processing:**
123137
- [react-reader](https://github.com/happyr/react-reader)
124138
- [epubjs](https://github.com/futurepress/epub.js/)
125139
- **UI Components:**
126-
- Headless UI
127-
- Tailwind CSS
128-
- **TTS Integration:** anything you want
129-
130-
## Project Structure
131-
132-
```
133-
src/
134-
├── app/ // Next.js app router
135-
├── components/ // Reusable UI components
136-
├── contexts/ // State management contexts
137-
└── services/ // Utility functions & integrations
138-
```
139-
140-
## Contributing
141-
142-
Contributions are welcome! Fork the repository and submit a pull request with your changes. For significant alterations, please open an issue first.
140+
- [Headless UI](https://headlessui.com)
141+
- [Tailwind CSS](https://tailwindcss.com)
142+
- **TTS Integration:** (tested on)
143+
- [OpenAI API](https://platform.openai.com/docs/api-reference/text-to-speech)
144+
- [Kokoro FastAPI TTS](https://github.com/remsky/Kokoro-FastAPI/tree/v0.0.5post1-stable)
143145

144146
## License
145147

146148
This project is licensed under the MIT License.
147-
148-
## Acknowledgements
149-
150-
- [react-pdf](https://github.com/wojtekmaj/react-pdf)
151-
- [react-reader](https://github.com/happyr/react-reader)
152-
- [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) for text-to-speech
153-
- [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) for the API wrapper
154-
155-
## Support
156-
157-
If you encounter issues or have suggestions, please open an issue on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "openreader-webui",
3-
"version": "0.1.0",
3+
"version": "0.1.3",
44
"private": true,
55
"scripts": {
66
"dev": "next dev --turbopack",

0 commit comments

Comments
 (0)