Files
bookhoard/docs/user/devices/koreader-setup.md
T
John O'Keefe 51613566ac docs(user): koreader install delegated to KOReader's own documentation
Owner ruling: we support the plugin, not the software. The per-device
install walkthroughs (Kindle launcher paths, Kobo .adds layout,
PocketBook package steps) were prose-trusted third-party knowledge —
exactly the kind of content this project can't verify and shouldn't
half-cover, especially since real installs usually involve jailbreaks
and extra launchers. Replaced with an honest scope note (we can't tell
you how to modify your device) plus a link to the KOReader project's
official installation guide, verified live: github.com/koreader/
koreader#installation routes to per-model wiki pages (Android, Kindle,
Kobo, PocketBook, reMarkable, and more). The plugin sections (git-clone
install, server URL, registration, the full menu tree) are unchanged —
that's our side and stays pinned to plugin source.

Also fixed while grounding: the Mobileread forum link pointed at f=271
but KOReader's own README badges f=276 as their subforum; and the
resources section now carries their user-guide link (koreader.rocks/
user_guide) alongside installation.
2026-11-02 14:32:39 -05:00

283 lines
11 KiB
Markdown

<!-- Ground truth: bookhoard.koplugin main.lua (menu tree, defaults, approval
flow) + the server-side koreader endpoints. Re-verify against the plugin
source when the plugin changes. KOReader ITSELF is out of scope: this
guide supports the plugin only, and installation is delegated to the
KOReader project's own documentation (README #installation, verified
2026-11-02 — per-device wiki pages for Android, Kindle, Kobo,
PocketBook, reMarkable, and more). -->
# KOReader Device Setup Guide
This guide will help you set up KOReader on your e-reader device to sync with
Bookhoard — reading position, bookmarks, highlights, notes, and even your
ratings, reviews, and reading time. One scope note up front: this guide is
about the **Bookhoard sync plugin**. Installing KOReader itself is a
different project's documentation, covered below.
## What is KOReader?
KOReader is an open-source e-reader application that supports a wide range of
e-reader devices including:
- Kindle devices (Paperwhite, Oasis, Voyage, etc.)
- Kobo devices (Clara, Aura, Nia, etc.)
- PocketBook devices
It also runs on Android tablets and phones — though on Android the dedicated
[Bookhoard app](android-app.md) is the better option.
## Prerequisites
Before you begin, make sure you have:
- ✅ A Bookhoard instance running and accessible on your network
- ✅ A web browser logged in to your Bookhoard account (for device approval)
- ✅ KOReader installed and running on your e-reader (see next section)
- ✅ Your device connected to the same Wi-Fi network as your Bookhoard instance
## Installing KOReader
One honest note first: **Bookhoard supports the Bookhoard sync plugin —
not KOReader itself.** Getting KOReader onto an e-reader usually involves
device-specific steps (jailbreaks, alternative launchers, one-click
packages) that vary by model and firmware. That's the KOReader project's
domain, not ours — we can't tell you how to modify your particular device,
and we won't pretend otherwise with half-remembered instructions.
The good news: KOReader documents this properly. Their installation guide
routes you to model-specific steps for Android, Kindle, Kobo, PocketBook,
reMarkable, and more:
**→ [KOReader installation guide](https://github.com/koreader/koreader#installation)**
Once KOReader itself is installed and running, everything below applies,
whatever device you're on.
## Connecting KOReader to Bookhoard
Setup is done **on the server**: you approve the device from the Bookhoard
web interface — no usernames, passwords, or tokens to type on the device.
### Step 1: Install the Bookhoard Plugin
Installation is a git clone straight into your KOReader `plugins/` folder —
no download-and-copy step:
```bash
cd koreader/plugins # .adds/koreader/plugins on Kobo
git clone https://git.linuxhg.com/Bookhoard/bookhoard.koplugin
```
Then restart KOReader.
**Updating later** is the same, smaller: in the `bookhoard.koplugin` folder,
`git pull`, then restart KOReader.
### Step 2: Point the Plugin at Your Server
1. Open KOReader, tap the **wrench icon** at the top (the tools menu)
2. Find and tap **Bookhoard sync**
3. Tap **Server URL**, enter your server address, then tap **OK**:
```
http://YOUR_COMPUTER_IP:8765
```
Use your server's LAN IP (or domain if you have one configured).
### Step 3: Register the Device
1. In the same **Bookhoard sync** menu, tap **Register device**
2. On your computer or phone, open Bookhoard and go to the **Devices** page
(sidebar navigation)
3. Your device appears under **Pending Device Registrations** — click
**Approve** to connect it
The plugin waits on the device and finishes by itself the moment you
approve. Once approved, its credentials are stored automatically, sync
events are armed, and Bookhoard's OPDS catalog is added to your KOReader —
no further configuration is needed.
> **Note:** Pending registrations expire after 5 minutes. If yours expires
> ("Registration expired"), just tap **Register device** again and approve.
### Auth Token (Advanced)
The Devices page shows each KOReader device's **Auth Token**. You normally
never need it (the plugin receives it automatically during approval), but it
can be re-entered manually in the plugin settings if you're moving a setup
between devices or debugging.
## The Bookhoard sync menu
Everything the plugin can do lives in one place: **wrench icon → Bookhoard
sync**. The menu changes shape depending on whether you are connected.
### Before you're connected
- **Server URL** — your server's address
- **Register device** — starts the approval flow above
### Once connected — one-tap actions
| Menu item | What it does |
| --- | --- |
| **Push progress from this device** | Force-push this device's position to the server |
| **Pull progress from server** | Force-pull the server's position onto this device |
| **Sync rating, review & time now** | Push your rating, review, and accumulated reading time for the current book immediately |
| **Setup OPDS catalog** | (Re-)adds Bookhoard's catalog to KOReader's OPDS list — normally done for you at approval |
| **Device info** | Shows this device's ID and the server it talks to |
| **Disconnect** | Forgets the device's credentials (after a confirmation) |
### Automatically push progress
This toggle is the on/off switch for background sync — **it starts off**, so
after approval, turn it on to get automatic syncing. With it on, progress
pushes as you read and on close/suspend; the plugin may prompt about turning
Wi-Fi on at those moments depending on your device.
Two related settings sit under it:
- **Periodically sync every # pages** — how many page turns between updates
(default 50; set 0 to disable periodic updates)
- **Sync mode** — **Immediate** pushes right away, **Checkpoint** batches
changes for slower connections or battery saving
### Sync behavior — who wins when states differ
These two settings decide what the device does when its progress and the
server's disagree, without you opening the Conflicts page:
- **Sync to a newer state** — the server has *newer* progress than this
device (default **Prompt**: the device asks before adopting it; alternatives
are **Silently** or **Never**)
- **Sync to an older state** — this device has *newer* progress than the
server (default **Never**: the device never rolls itself back)
Set both to **Silently** for hands-off syncing, or leave the defaults if you
want a say whenever progress would move.
### What to sync
Seven toggles, all on by default, each controlling one kind of data:
- **Reading progress**
- **Bookmarks**
- **Highlights**
- **Notes**
- **Ratings** — your book ratings made in KOReader
- **Book review** — your review text
- **Reading time** — time-spent statistics
Turn off anything you'd rather keep local; the rest keeps flowing both ways.
## What Syncs
Once connected and enabled, the following sync in both directions between
KOReader and Bookhoard (web, Android, and other devices), each governed by
its toggle above:
- **Reading position** — percentage, chapter, and EPUB CFI where available
- **Bookmarks**
- **Highlights** — including highlight colors, mapped between the web and
KOReader palettes
- **Notes** — standalone and attached to highlights
- **Ratings, review, and reading time** — pushed to the server (push any
time from the menu with **Sync rating, review & time now**)
Books are matched automatically using UUIDs, file hashes (SHA-256,
format-aware so converted files still match), file aliases, and
title/author fallback. If a book can't be matched, it shows up under the
device's **Unlinked Books** in Bookhoard, where you can link it manually.
## OPDS Wireless Book Delivery
At approval the plugin adds Bookhoard's OPDS catalog to KOReader (and
**Setup OPDS catalog** re-adds it any time), so you can browse and download
books wirelessly — no USB cable needed.
### Browse and Download Books
1. In KOReader, open the OPDS catalog list and tap **Bookhoard**
2. Browse your library: all books, collections, and recent additions
3. Tap a book to see details and **Download** it
### Supported Formats
- **EPUB**: Standard ebook format
- **KEPUB**: Kobo-optimized format
- **PDF**: Fixed-layout documents
- **CBZ**: Comic book archives
Books downloaded via OPDS are automatically matched to your library, so
their progress syncs from the first page.
## Troubleshooting
### Pending Registration Never Appears
**Problem**: You entered the Server URL, but no pending registration shows in Bookhoard
**Solutions**:
1. Verify the Server URL is correct (no trailing path — just the base address)
2. Make sure KOReader is connected to Wi-Fi
3. Check the Bookhoard server is reachable from the device's network
4. Registrations expire after 5 minutes — tap **Register device** again and approve quickly
### Connection Refused
**Problem**: "Connection refused" error on the device
**Solutions**:
- Verify Bookhoard is running
- Check the server address and port (default `8765`)
- Ensure the device is on the same Wi-Fi network as the server
- Use the server's LAN IP instead of `localhost`
### Sync Not Working After Approval
**Problem**: Device shows as approved but changes don't appear in Bookhoard
**Solutions**:
- **Automatically push progress** defaults to off — turn it on in the menu, or push once with **Push progress from this device**
- Check the device shows as enabled on the **Devices** page (open its settings from the icon next to the device)
- Verify the book appears as an unlinked book for the device and link it if needed
- Check Bookhoard server logs for errors
### Turning on auto-sync asks about Wi-Fi
If enabling **Automatically push progress** shows a message about
**"Action when Wi-Fi is off"**, open KOReader's Network settings and set
that action to **turn on** — auto-sync needs permission to bring Wi-Fi up by
itself.
### Conflicts Detected
**Problem**: Sync conflicts when reading the same book on multiple devices
**Solutions**:
1. Open the book's detail page and click **Sync Progress**, or open the Conflicts page (`/conflicts`)
2. Review the progress reported by each device
3. Choose a resolution: keep one side's progress, keep the server's, or let the furthest progress win
For day-to-day control of the same question on the device itself, use the
**Sync behavior** settings (newer state / older state).
## Security Best Practices
1. **Use HTTPS**: If exposing Bookhoard beyond your LAN, configure SSL/TLS
2. **Network Security**: Ensure your Wi-Fi network is secure (WPA2/WPA3)
3. **Device Authorization**: Only approve pending registrations you initiated
4. **Revoke lost devices**: Remove devices you no longer use from the Devices page
## Additional Resources
- [KOReader](https://github.com/koreader/koreader) — [installation](https://github.com/koreader/koreader#installation) · [user guide](https://koreader.rocks/user_guide/)
- [KOReader Forum](https://www.mobileread.com/forums/forumdisplay.php?f=276) — the project's official Mobileread subforum
- [Bookhoard Universal Sync Guide](../sync-guide.md)
- [Bookhoard KOReader Plugin](https://git.linuxhg.com/Bookhoard/bookhoard.koplugin)