Skip to content
Go back

Calibre-Web vs Calibre Server vs Kavita

By SumGuy 12 min read
Calibre-Web vs Calibre Server vs Kavita
Contents

Your Ebook Library Deserves Better Than a Folder Called “Books”

Kavita wins the moment your library mixes ebooks with comics and manga, and Calibre-Web wins if you already have years of Calibre metadata worth keeping.

If you’ve got more than fifty ebooks gathering dust in a Downloads folder, you already know that chaos. But the moment you want to actually read them across multiple devices (phone, tablet, e-reader, browser), you hit a wall. You need organization, metadata, a reading interface that doesn’t suck.

This is where the self-hosted ebook stack comes in. There are several ways to do it, each with wildly different philosophies. Some let you convert formats on the fly. Some focus on a sleek reading experience. Some handle comics and manga like they’re first-class citizens (not an afterthought). Some require you to run a whole desktop application just to manage metadata.

Let’s talk about the three main contenders: Calibre (the heavyweight metadata tool), Calibre-Web (the classic combo: Calibre’s library exposed via a web UI), and Kavita (the modern newcomer that does ebooks, manga, comics, and PDFs all under one roof).


Which Ebook Server Belongs On Your NAS?


Calibre: The Librarian in Your Basement

Calibre is not a server. It’s a desktop application (Windows, Mac, Linux) that does one thing obsessively well: manage ebook metadata and handle format conversion. Think of it as the reference librarian who organizes everything but doesn’t actually work the circulation desk.

Here’s what Calibre does:

The catch? Calibre is a desktop application. You run it on your machine. It’s heavy (Python/Qt-based, slow startup), and it’s not designed for casual reading. You open it to manage, not to read.

That’s why Calibre-Web exists.


Calibre-Web: The Friendly Bridge

Calibre-Web takes a Calibre library and wraps it in a lightweight web interface. It’s the natural evolution: you keep Calibre running on your always-on machine (or just use its library folder), and Calibre-Web serves a reading UI.

What Calibre-Web gives you:

The real win: You get Calibre’s metadata universe without running the desktop app every time you want to read.

The tradeoff: Calibre-Web is built on top of Calibre’s library. If you want to convert a new book, you still need Calibre somewhere in the pipeline. And the in-browser reader? It’s serviceable, but not flashy.


Kavita: The Modern Alternative

Kavita is the new kid. It’s a self-hosted ebook and comics and manga server written in .NET, with a fresh UI that doesn’t feel like a 2010 web app. It’s independent of Calibre entirely: it has its own database, its own library scanner, its own reader.

What Kavita does:

The philosophy: Don’t force users into a format hierarchy. A person might have literary novels, technical PDFs, manga, comic book runs, and long-form journalism all in one library. Serve them all the same way.

The catch: Kavita is standalone. It never opens Calibre’s metadata.db, so years of tags, ratings and custom series only come along if you embed them into the files first (there’s a section on that below). And Kavita doesn’t do format conversion. It serves what you give it.


Format Support: The Practical Bit

Here’s the rundown:

FormatCalibreCalibre-WebKavita
EPUB✅ Read + Convert✅ Read (browser)✅ Read (browser)
MOBI✅ Read + Convert✅ Read
AZW3✅ Read + Convert✅ Read
PDF✅ Read + Convert✅ Read (basic)✅ Read
CBR/CBZ✅ Read (optimized)
OPDS Feed
Browser Reader✅ (basic)✅ (modern)
Format Conversion✅ (primary job)⚠️ (requires Calibre)

Reading Experience: Where You Actually Use It

This is the practical difference.

On your phone: You use an OPDS client (KOReader, Moon+ Reader, Kybook for iOS). Both Calibre-Web and Kavita expose OPDS feeds, so you can browse your library in the same app you use to read. Calibre alone? Nope, unless you download and sideload.

In a browser: Calibre-Web has a basic in-browser reader (functional). Kavita’s browser reader is smoother, more responsive, better at handling mobile layouts. Neither matches a native e-reader app, but Kavita’s closer.

On an e-reader (Kobo, Kindle): You sync via OPDS (both Calibre-Web and Kavita support this, via an e-reader OPDS client). Calibre can push directly via USB, but that’s 2010 thinking.

For comics and manga: Calibre-Web doesn’t care about them. Kavita is built for them. CBR/CBZ navigation, double-page spread support, webtoon vertical scroll: all native.


Metadata and Discovery

Calibre is the unmatched champion here. It plugs into Goodreads, ISBN databases, Google Books, Amazon. You can bulk-fix metadata on thousands of books.

Calibre-Web inherits Calibre’s metadata: whatever Calibre fetched, Calibre-Web shows.

Kavita doesn’t go looking for metadata on its own. The free version reads what’s embedded in your files and stops there. Automatic matching against external sources (AniList and MyAnimeList, with Hardcover planned) belongs to Kavita+, the optional paid subscription, and it’s aimed squarely at manga and comics rather than your PDF pile. So if a book has nothing embedded, you’re typing the details in yourself or leaving them blank. For a personal library that’s usually fine, especially if Calibre already did the tagging. For 5,000 books where you want the whole shelf consistent, Calibre’s depth wins.


Making Calibre Metadata Show Up in Kavita

Good news if you’ve spent years tidying metadata in Calibre: you don’t have to redo any of it. You just have to move it out of Calibre’s database and into the books themselves.

Calibre keeps everything in metadata.db, and Kavita never reads that file. What Kavita reads is metadata embedded inside each book: the OPF block in an EPUB, ComicInfo.xml in a comic archive, and (since Kavita 0.8.5) the XMP block Calibre writes into PDFs. Embed it once and Kavita picks it up on the next scan, no subscription involved.

In the Calibre GUI: select the books, Edit metadata, then the Embed metadata action. From the command line, ebook-meta ships with Calibre and handles one file at a time:

Terminal window
ebook-meta -t "Some Technical Manual" -a "Jane Doe" \
-s "Reference Shelf" -i 2 "scan_final_v2.pdf"

Where each field lands:

Calibre / ebook-meta flagShows up in Kavita as
--seriesSeries name
--indexVolume
--titleChapter title
--authorWriter
--tagsGenres
--commentsSummary
--publisherPublisher
--ratingUser rating

EPUBs map the same way through their OPF file (calibre:series, calibre:series_index, dc:creator, dc:subject, and the rest).

The honest limit: Calibre has to know the metadata before it can embed it. A folder of PDFs accumulated over two decades with names like scan_final_v2.pdf is still a manual identification job, and Calibre’s bulk metadata download is far weaker on PDFs than on EPUBs carrying an ISBN. Kavita’s scanner falls back to parsing the filename, which is exactly as good as your filenames are.

Thanks to reader Pedja for the question that prompted this section.


Disk Layout: Where Philosophy Differs

Calibre stores books in author folders:

/library/
Author Name/
Book Title/
book.epub
Another Book/
book.mobi

It maintains a metadata.db SQLite database with all the metadata.

Kavita scans your library and builds its own database. You can organize files however you want:

/library/
Fiction/book1.epub
Manga/series-title/vol1.cbz
Comics/comic-series/issue1.cbr
PDFs/technical-docs/some-doc.pdf

Kavita doesn’t care about the folder structure: it indexes by filename and internal metadata.

This matters if you’re migrating. Moving from Calibre to Kavita? You can reorganize files however you like. Moving from Kavita to Calibre? Calibre will rebuild its folder structure automatically (and potentially get it wrong if metadata is missing).


Real-World Scenarios: When to Pick What

You should use Calibre + Calibre-Web if:

Docker Compose setup:

services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./calibre-web/config:/config
- /path/to/calibre/library:/books # Point to your Calibre folder
ports:
- "8083:8083"
restart: unless-stopped

Just mount your existing Calibre library folder as /books. Calibre-Web reads the metadata.db and serves it.

You should use Kavita if:

Docker Compose setup:

services:
kavita:
image: jvmilazz0/kavita:latest
container_name: kavita
environment:
- PUID=1000
- PGID=1000
volumes:
- ./kavita/config:/kavita/config
- /path/to/books:/books
ports:
- "5000:5000"
restart: unless-stopped

Point the /books volume to wherever your files live. Kavita scans and indexes them automatically. No Calibre needed.


The Conversion Problem

Here’s the awkward bit: if you pick Kavita for a mixed library, you can’t convert formats without Calibre. Want to convert that PDF to EPUB? You need Calibre installed somewhere (doesn’t have to be the same machine, but it needs to exist).

The pragmatic solution? Run both. Keep a Calibre instance (could be in Docker, could be the desktop app) for conversion work. Serve everything through Kavita for reading. Best of both worlds, but adds complexity.

services:
calibre:
image: lscr.io/linuxserver/calibre:latest
container_name: calibre
environment:
- PUID=1000
- PGID=1000
volumes:
- ./calibre/config:/config
- /path/to/books:/books
ports:
- "8080:8080"
restart: unless-stopped
kavita:
image: jvmilazz0/kavita:latest
container_name: kavita
environment:
- PUID=1000
- PGID=1000
volumes:
- ./kavita/config:/kavita/config
- /path/to/books:/books
ports:
- "5000:5000"
restart: unless-stopped

Both pointing to the same /books volume. Use Calibre’s web UI for metadata and conversion, Kavita for reading.


Honorable Mention: Komga

Before you leave: Komga is another option specifically for comics and manga. It’s simpler than Kavita, faster at comic reading, but less useful for ebooks. If your library is 80% comics and you just want a no-frills server, Komga wins. If it’s mixed, Kavita does both better. (Komga deserves its own article.)


Pick the Stack That Matches Your Library

Here’s the honest take:

The trap is overthinking it. Your 2 AM self doesn’t care whether it’s Calibre or Kavita: they just want to hit their phone and read the next chapter. Pick whichever gets out of the way fastest. That’s usually Kavita for new setups, Calibre-Web if you’ve already got the library.

Now stop reorganizing your ebooks and start reading them.


Share this post on:

Send a Webmention

Written about this post on your own site? Send a webmention and it'll show up above once verified.


Previous Post
Home Assistant Backups That Actually Restore
Next Post
Multiple Claude Code Accounts, One Config

Discussion

Powered by Garrul . Sign in with GitHub or Google, or post anonymously.

Related Posts