I wanted to read the books and comics I bought on my tablet, phone, and Kindle. The problem was the Kindle. For a device made for reading, it makes things quite complicated when the library is on my own server. I just wanted to open my catalog and read.

Kavita and KOReader

I already kept my books in Kavita, which organizes the files stored on my server. Besides its web interface, it makes the library available through OPDS.

OPDS is an open standard that lets other readers access content on the server. Kavita enables this support by default. How it works is explained in the OPDS documentation.

To read the files, I use KOReader. It opens EPUB, PDF, CBZ, and other formats, and lets me adjust the font, margins, contrast, and pagination. The full list of features is in the official KOReader user guide.

On Android, the app can be installed on tablets and phones. The installation options are in the project documentation.

KOReader accesses the catalog through the OPDS address generated by Kavita. The integration also syncs reading progress for EPUBs, PDFs, and comics. The details are in the Kavita and KOReader integration guide.

KOReader on Kindle

To use KOReader on a Kindle, you need to jailbreak the device. Whether that is possible depends on the model and firmware version, as explained in the project documentation.

Do it at your own risk.

Catalog

After I added the OPDS catalog to KOReader, my Kavita books started showing up there. When I add a new book to the server, it appears in the catalog and I can download it straight to the device.