Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Readers > Kobo Reader

Notices

Reply
 
Thread Tools Search this Thread
Old 06-12-2026, 02:07 PM   #1
n2024
Junior Member
n2024 began at the beginning.
 
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.
n2024 is offline   Reply With Quote
Reply

Tags
plugin, server


Forum Jump

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


All times are GMT -4. The time now is 10:55 AM.


MobileRead.com is a privately owned, operated and funded community.