|
|||||||
![]() |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
Junior Member
![]() Posts: 1
Karma: 10
Join Date: Jun 2026
Device: Kobo reader Klara
|
Varbook - self-hosted EPUB library with KOReader <-> web reading-posi
Hi all,
I read on a Kobo running KOReader at home, but during the day I often only have my phone with me. I wanted my reading position to follow me between the two without fuss, while keeping my books on my own server. I couldn't find a setup that synced both the position and the reading time between KOReader and a browser reader, so I built one: Varbook. What it is: - A small self-hosted EPUB library (single Docker container, SQLite by default). - An in-browser reader (epub.js) that also works as an offline-capable PWA: books are cached locally, and the position syncs back to the server when you're online. - An OPDS catalogue, so any compatible reader can browse and download. - A KOReader plugin ("Varbook Sync") that pushes/pulls your position and reading time to the server in a single gesture. It's on the KOReader App Store (search "Varbook Sync"), or you can install it manually. The part that took the most work is cross-device position sync. KOReader's CREngine tracks position with XPointers, while web readers (epub.js / Readium) use EPUB CFI, and the two aren't interchangeable. Varbook uses a "pivot" format based on the EPUB spine (spine item index + percentage within the chapter), computed on both ends, so moving between KOReader and the browser lands you on the right page instead of throwing you off by a chapter. It falls back to the native format when both ends share an engine (CFI web-to-web, XPointer KO-to-KO), and to a global percentage as a last resort. My daily loop: - Evening on the Kobo: tap a corner (a gesture I assigned) -> Wi-Fi on, pull latest position, Wi-Fi off again to save battery. Read. Tap again -> push position + reading time. - Next day: I open the PWA on my phone, it drops me where I left off and syncs on each page turn. - Evening: back to the Kobo, which picks up the phone's position. It's open source (MIT), built with Laravel + React. It's still young but I've been using it daily for a few months and it's been stable for my use. There's a free public instance if you want to try it without installing anything: https://varbook.hophop.be - Code: https://github.com/ndieschburg/varbook - KOReader plugin: https://github.com/ndieschburg/varbook.koplugin Feedback very welcome, especially from KOReader users. The plugin is where I'd most like to hear what works and what doesn't. |
|
|
|
![]() |
| Tags |
| plugin, server |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| KOReader plugin that syncs reading progress back to the Onyx Boox library | Tumeconnais | Onyx Boox | 2 | 03-20-2026 01:27 AM |
| BookLore: A Self-Hosted Application for Managing and Reading Books | ownedbycats | General Discussions | 25 | 02-19-2026 07:39 PM |
| How to access web server hosted on NAS while using KOreader? | BMANN2 | Kobo Reader | 1 | 03-25-2023 02:14 PM |
| BookBrowser - A tool to create a web interface for reading your ePub library | geek1011 | Reading and Management | 7 | 06-22-2017 11:24 AM |