docs(user): pairing-code flow for device setup guides

The setup guides walked the retired broadcast-list approve ("your device
appears under Pending Device Registrations — click Approve"), which no
longer exists. Both now describe the pairing-code flow: the e-reader
displays a 6-digit code, you type it into Pair a Device on your own
account, and only whoever holds the device can read the code — the
family-server gap that motivated the change. Adds a Pairing Code Not
Accepted troubleshooting case, refreshes the security practices
(claim only codes you can see on a device you are holding), and aligns
the remaining approval/pending wording throughout.
This commit is contained in:
John O'Keefe committed 2026-11-02 16:11:31 -05:00
1 parent 3e98fadb9f
commit 5211edf264
2 files changed
+52 -28

No files matched your search

+41 -22
View File
@@ -1,4 +1,4 @@
<!-- Ground truth: bookhoard.koplugin main.lua (menu tree, defaults, approval
<!-- Ground truth: bookhoard.koplugin main.lua (menu tree, defaults, pairing
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
@@ -31,7 +31,7 @@ It also runs on Android tablets and phones — though on Android the dedicated
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)
- ✅ A web browser logged in to your Bookhoard account (to enter the pairing code)
- ✅ KOReader installed and running on your e-reader (see next section)
- ✅ Your device connected to the same Wi-Fi network as your Bookhoard instance
@@ -55,8 +55,9 @@ 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.
Setup is done **on the server**: your e-reader shows a pairing code, and you
type it into your own account's Devices page — no usernames, passwords, or
tokens to type on the device.
### Step 1: Install the Bookhoard Plugin
@@ -88,23 +89,27 @@ Then restart KOReader.
### 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
2. Your e-reader displays a **6-digit pairing code**
3. On your computer or phone, open Bookhoard — logged into **your** account —
and go to the **Devices** page (sidebar navigation)
4. Type the code into the **Pair a Device** field and click **Find device**,
then confirm on the card that appears
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.
The code is the only way to claim the registration, and only someone holding
the device can read it — so the device always lands in the account of the
person who registered it. The plugin waits on the device and finishes by
itself the moment you confirm. Once paired, 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.
> **Note:** Pairing codes expire after 5 minutes. If yours expires
> ("Registration expired"), just tap **Register device** again for a fresh
> one. Dismissing the waiting dialog on the device cancels the attempt.
### 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
never need it (the plugin receives it automatically during pairing), but it
can be re-entered manually in the plugin settings if you're moving a setup
between devices or debugging.
@@ -116,7 +121,7 @@ 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
- **Register device** — starts the pairing flow above
### Once connected — one-tap actions
@@ -132,7 +137,7 @@ sync**. The menu changes shape depending on whether you are connected.
### 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
after pairing, 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.
@@ -216,14 +221,26 @@ their progress syncs from the first page.
### Pending Registration Never Appears
**Problem**: You entered the Server URL, but no pending registration shows in Bookhoard
**Problem**: You entered the Server URL, but no pairing code shows on the device
**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
4. Registrations expire after 5 minutes — tap **Register device** again
### Pairing Code Not Accepted
**Problem**: The Devices page says "No waiting device matches that code"
**Solutions**:
1. Re-read the code on the device — it refreshes on every **Register device** tap
2. Check you typed all 6 digits (spacing doesn't matter)
3. Codes expire after 5 minutes — register again on the device and type the new code
4. "Pairing code already used" means the device already paired (check the device list); otherwise register again
5. Too many attempts lock new tries for a minute — wait and retry
### Connection Refused
@@ -236,9 +253,9 @@ their progress syncs from the first page.
- 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
### Sync Not Working After Pairing
**Problem**: Device shows as approved but changes don't appear in Bookhoard
**Problem**: Device shows as paired but changes don't appear in Bookhoard
**Solutions**:
@@ -271,7 +288,9 @@ For day-to-day control of the same question on the device itself, use the
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
3. **Claim only codes you can see**: a pairing code is readable only on the
registering device's screen — never claim a code someone merely told you
if you can't see the device showing it
4. **Revoke lost devices**: Remove devices you no longer use from the Devices page
## Additional Resources