Syncing my Kindle with calibre-web, KOReader and Syncthing
I own an Amazon Kindle Paperwhite (2nd generation). For the longest time, I was looking for a solution that would enable me to sync my reading progress between my phone and Kindle, as well as transfer books between all devices wirelessly.
I finally managed to accomplish this with Syncthing, KOReader and Calibre-Web.
Syncthing is a FOSS peer to peer decentralized file-sharing program. I have written about the network topology I use.
KOReader is an e-ink document viewer, which supports not only the Kindle, but Android, Linux and other platforms. Notably, it offers a progress-sync plugin, as well as support for downloading books from OPDS catalogs. Finally, there is also a Wallabag plugin, which lets me download and sync articles from my Wallabag server.
Calibre-Web is a web interface for Calibre (the best e-book organizer), and can also function as an OPDS server, from which devices with KOReader can download books from. There is a Docker container available as well.
Workflow
flowchart TD
Ebooks --> Calibre[Calibre Desktop]
Ebooks --> Calibre-Web
Calibre <--> Library[Calibre library]
Calibre-Web <--> Library
Calibre-Web -->|downloaded on demand to| Syncthing
Syncthing[Shared Syncthing folder] <--> Phone
Syncthing <--> Kindle
Progress-sync <--> Phone
Progress-sync <--> Kindle
After I obtain ebooks, I either use Calibre to upload the ebook my shared Calibre library (on my server), or upload it directly into Calibre-Web.
Then, on either my phone or Kindle, I download the ebook into a shared Syncthing folder. This synchronizes the ebook across all my devices.
Reading progress is also synced across my devices with the KOReader progress-sync plugin.
Setting it up
- Jailbreak and install KOReader on your Kindle by following this guide.
- Setup Calibre-Web in a method of your choice. I use this Docker image.
- Install Syncthing on your Kindle by following this guide.
- Configure a common folder for Syncthing on your devices to sync Ebooks to.
- Add your Calibre-Web OPDS url to your devices (guide).
- Setup progress-sync on your devices
- Optionally, setup Wallabag support (guide).
Now, your ebooks should be syncing across your devices, as well as their reading progress.