Kavita - Your Rocket Fueled Digital Library That can be Shared with Friends

If you have a digital library that contains a variety of mediums (cbr/cbz,pdf,epub) and you want a system that allows you to read on the web and share with your friends and family, Kavita might be the solution you are looking for! ๐Ÿ“–

Kavita - Your Rocket Fueled Digital Library That can be Shared with Friends

Kavita was originally designed as a Manga reader but has since expanded to include all kinds of content. It is licensed on the GPL-3.0 license and can be selfhosted on all popular platforms.

Purchasing Comics and Other Content

๐Ÿ’ก
Noted and it's authors do not Condone Piracy โ˜ ๏ธ ๏ธ

I have taken advantage of Humble Bundles in the past to slowly build up a library of Comics and eBooks.

Humble Bundle Library

All examples in this post reflect my personal collection which I have purchased.

Try a Demo to see if it's right for you!

https://demo.kavitareader.com

Username: demouser
Password: Demouser64

Getting Started in Docker

Kavita provides example docker run and docker compose commands on their main homepage and in their documentation. A very basic example is shown below:

version: '3.9'
services:
    kavita:
        image: kizaing/kavita:latest    # Change latest to nightly for latest develop builds (can't go back to stable)
        container_name: kavita
        volumes:
            - ./manga:/manga            # Manga is just an example you can have the name you want. See the following
            - ./comics:/comics          # Use as many as you want
            - ./books:/books            #
            - ./data:/kavita/config     # Change './data if you want to have the config files in a different place.
                                        # /kavita/config must not be changed
        environment:
            - TZ=Your/Timezone
        ports:
            - "5000:5000" # Change the public port (the first 5000) if you have conflicts with other services
        restart: unless-stopped

You can have as many volume mounts as you need. I personally chose to do one for eBooks and one for comics. Within those two categories, I can then create a more detailed folder structure based on series.

๐Ÿš€
Run your own instance of Kavita for as little as $1.9/Month with PikaPods! โ€“ Start free with $5 welcome credit ๐Ÿค—

Organization Matters

After I got Kavita up and running, I had a problem with my comics not showing up in my library. At this point, I hadn't explored their documentation and had instead just thrown my files into my comics folder (root folder).

After some faffing about, I found my way to their documentation and saw this very important bit of information of how the scanning mechanism works:

Kavita expects all series to be nested in a folder. The ideal layout is:
Library Root
  โ” โ”€โ”€ Series Name A
  โ”‚   โ” โ”€โ”€ Series Name A - v01.cbz
  โ”‚   โ‹ฎ
  โ”‚   โ” โ”€โ”€ Series Name A - v06.cbz
  โ”‚   โ”–โ”€โ”€ Specials
  โ”‚     โ”–โ”€โ”€ Artbook 1.cbz
  โ”‚
  โ”–โ”€โ”€ Series Name B
      โ” โ”€โ”€ Series Name B - v01.cbz
      โ‹ฎ
      โ” โ”€โ”€ Series Name B - v06.cbz
      โ”–โ”€โ”€ Specials
        โ”–โ”€โ”€ Artbook 1.cbz

Ebooks are controlled entirely around the metadata that is written to the file.

eBooks are primarily parsed by metadata within the epub file (opf). Filenames are used only for Volume and Series, but metadata overrides everything. eBooks do not fall back to folders for parsing. Kavita scans ebooks in a 2 pass process. The first pass tries to parse from the filename. If volume and series name can be parsed, then it is treated like a manga or comic. If not enough information is present, the internal epub metadata is used. Within the metadata, certain tags are used to group them into a collection, like "Expanse". Calibre eBook Management software can be used to edit epub metadata to include Series, Volume, and Title so that series with multiple books parse correctly into the same series. Calibre

Most of my eBooks from Humble bundle were super weird and didn't work right away in Kavita. Humble bundle delivered them as zip files which technically an .epub is a type of zip, but I found I had to do some wrangling with Calibre and Sigil to get things to work appropriately.

I worked with a few people in the community to trouble shoot some issues and these are the steps we followed:

  1. Rename the file extension from zip to epub
  2. Import the file into Calibre and convert it to epub then download metadata in Calibre
  3. Open the epub file in Sigil and use F7 to test for issues
  4. Correct issues and save file
  5. Upload file to Kavita and rescan library

I found success with most of my eBooks following these steps. It really boils down to how well the package was delivered. I also found that I had to point my library mount to the root eBook folder for it to find my books.

Location of eBook mount

After restructuring my folders, everything started to work!

The Reading Experience

Reading Comics was fantastic. I used landscape on my phone and portrait/landscape on my iPad mini. Syncing between devices was seamless and I read several hundred pages of various comics during this testing phase.

eBooks were a little more troublesome. I found that I couldn't use the "tap pagination" feature reliably. This means that when you reach the bottom of a page, you tap in the margins and the expected behavior is that you advance to the next page and are placed at the top. The current behavior is that you advance to the next page, but you go to a similar location to the previous page (near the bottom). I did open a bug report with the project to address this issue.

๐Ÿ‘‹
Like what you see? Consider subscribing to the Noted newsletter and never miss a beat! You can always unsubscribe at any time.

Final Notes and Thoughts

I really enjoyed my experience with this project and if I stick with it, I plan to help support the project.

We cover a lot of projects on Noted and if you are in a position to contribute time, talent or treasure to help a project that you use regularly, I encourage you to do so this year.

Returning value (time, talent, treasure) to projects that you use helps keep the projects we depend on healthy and active. Detailed and courteous bug reports are one way that I attempt to contribute to many projects. You don't need to be a dev or provide monetary contributions to return value to a project. Being active and helpful in the community is a great way to give back. If you'd like to get involved in the Kavita community, they have a Discord that you can join. ย Monetary links to help support the project are also included below.

โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒProject Support

๐Ÿ’ก
Have you read the article on Komga? It's another Comic/Manga selfhosted option if Kavita doesn't seem right for you.