From 0b1e293638bc9c65f1b1e320c79f98754d4cdabf Mon Sep 17 00:00:00 2001 From: Richard R Date: Sun, 31 May 2026 16:09:31 -0600 Subject: [PATCH] style(landing): revise feature copy and docker instructions for clarity Update landing page descriptions to emphasize native file rendering and layout-aware parsing. Adjust Docker quick start instructions to remove redundant volume mount and highlight required environment variables for self-hosting. --- docs-site/docs/docker-quick-start.md | 2 -- src/app/(public)/page.tsx | 28 +++++++++++++++++----------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/docs-site/docs/docker-quick-start.md b/docs-site/docs/docker-quick-start.md index d51d351..8a725f8 100644 --- a/docs-site/docs/docker-quick-start.md +++ b/docs-site/docs/docker-quick-start.md @@ -41,7 +41,6 @@ docker run --name openreader \ -p 3003:3003 \ -p 8333:8333 \ -v openreader_docstore:/app/docstore \ - -v /path/to/your/library:/app/docstore/library:ro \ -e API_BASE=http://host.docker.internal:8880/v1 \ -e API_KEY=none \ -e BASE_URL=http://localhost:3003 \ @@ -55,7 +54,6 @@ What this command enables: - `-p 3003:3003`: exposes the OpenReader web app/API. - `-p 8333:8333`: exposes embedded SeaweedFS S3 endpoint for direct browser presigned upload/download. - `-v openreader_docstore:/app/docstore`: persists SQLite metadata, SeaweedFS blob data, and migration/runtime state. -- `-v /path/to/your/library:/app/docstore/library:ro`: mounts a read-only importable library source. - `-e API_BASE=...` / `-e API_KEY=...`: **first-boot seed only.** On the first container start, these are auto-migrated into a `default-openai` admin shared provider stored in the DB (key encrypted at rest). After that, the running app no longer reads them — manage the provider from **Settings → Admin → Shared providers**. See [Admin Panel](./configure/admin-panel). - `-e BASE_URL=...` and `-e AUTH_SECRET=...`: required for v4+ auth/session startup. - `-e ADMIN_EMAILS=...`: (optional, requires auth) comma-separated emails auto-promoted to admin. Admins see the **Admin** tab in Settings. diff --git a/src/app/(public)/page.tsx b/src/app/(public)/page.tsx index dd56459..fd661ae 100644 --- a/src/app/(public)/page.tsx +++ b/src/app/(public)/page.tsx @@ -91,9 +91,10 @@ export default async function LandingPage() {

OpenReader turns EPUB, PDF, TXT, Markdown, and DOCX into a - synchronized read-along surface, with genuine text-to-speech, - word-level highlighting, and audiobook export. It’s open - source, and entirely yours to self-host. + synchronized read-along surface, reading your original file in a + native viewer with genuine text-to-speech, word-level + highlighting, and audiobook export. It’s open source, and + entirely yours to self-host.

@@ -221,9 +222,9 @@ export default async function LandingPage() { 03

Read, listen, export

- Follow word-level highlighting as it plays, pick up where you - left off on any device, and export a chaptered m4b or mp3 - audiobook for the road. + Follow word-level highlighting right on the original page as it + plays, pick up where you left off on any device, and export a + chaptered m4b or mp3 audiobook for the road.

@@ -240,12 +241,14 @@ export default async function LandingPage() {
- Parsing -

Layout-aware PDF understanding

+ Formats +

Native EPUB and PDF, kept intact

- PP-DocLayoutV3 (ONNX) detects structured blocks, stitches - content across pages, and aligns highlights to real geometry, - so even dense, multi-column PDFs read in the right order. + Your file renders in a built-in EPUB and PDF reader, never + flattened to plain text. Layout-aware parsing (PP-DocLayoutV3, + ONNX) maps the structure underneath, so read-along highlighting + follows the true reading order, even in dense, multi-column + PDFs.

@@ -346,10 +349,13 @@ export default async function LandingPage() { $ docker run --name openreader \{'\n'} {' '}-p 3003:3003 -p{' '} 8333:8333 \{'\n'} + {' '}-v openreader_docstore:/app/docstore \{'\n'} {' '}-e BASE_URL= http://localhost:3003 \{'\n'} {' '}-e AUTH_SECRET= $(openssl rand -hex 32) \{'\n'} + {' '}-e ADMIN_EMAILS= + you@example.com \{'\n'} {' '}ghcr.io/richardr1126/openreader:latest{'\n'} {'\n'} # open the reading room