Abstract teal and amber illustration of overlapping comic panels and open book pages representing a self-hosted digital library for comics, manga, and ebooks

Kavita

Kavita

Kavita is a fast, self-hosted digital library for comics, manga, and ebooks, handling CBR/CBZ, EPUB, and PDF without forcing everything through a video-first data model. It runs in a single Docker container, with a dedicated reader per format, a webtoon mode for long-strip manga, and an OPDS feed for third-party reading apps. It’s built by the Kareadita organization, led by developer majora2007.

Quick facts: Kavita is open source under the GNU GPL v3 license, confirmed from GitHub’s LICENSE file. Current stable release is v0.9.0.2, past 10,800 stars on GitHub, still labeled beta ahead of a 1.0 release. The official image ships on three registries: ghcr.io/kareadita/kavita (GHCR), jvmilazz0/kavita on Docker Hub, and linuxserver/kavita via LinuxServer.io, default port 5000. Same rule as everywhere else on this site: this page assumes a library built from comics, manga, and ebooks already owned, DRM-free purchases, personal scans, or public-domain works. Nothing else.

What is Kavita?

A general-purpose media server usually treats a comic or an ebook as an edge case bolted onto a design built for video and music. Kavita goes the other way: comics and manga in CBR, CBZ, ZIP/RAR/RAR5, 7ZIP, and raw images, plus books in EPUB and PDF, each with its own hand-built reader instead of one generic viewer. Metadata comes from filenames and embedded ComicInfo.xml files, so a reasonably organized library mostly just works after a scan. User accounts run on OIDC or built-in logins with per-library and age-rating restrictions. An optional paid tier, Kavita+, adds AniList/MyAnimeList sync and downloaded metadata, but core Kavita stays fully free either way.

How does Kavita organize a library?

Kavita scans whatever folder structure already exists instead of demanding a rebuild first. A typical setup splits into separate libraries by type, comics, manga, and EPUB/PDF books each in their own folder tree, with every top-level folder inside a library treated as its own series. An embedded ComicInfo.xml supplies volume and chapter data when one exists; otherwise Kavita parses the filename. Collections and reading lists, including CBL import, handle grouping from there.

Is Kavita legal to run?

Yes. Kavita is self-hosted software like any other program in this category: it doesn’t fetch, unlock, or scrape anything from anywhere, it only reads and serves files already sitting in a folder it’s pointed at. What matters is where those files came from. Comics and manga scanned from physical volumes already owned, ebooks bought DRM-free, and public-domain works are all fair game for a personal Kavita library. This page has nothing to do with scan groups or any other source of unlicensed comics, manga, or books.

How to install Kavita with Docker

Prereq: Docker and Docker Compose need to already be installed. Our homelab setup guide for beginners covers picking hardware for a first Docker project.

  1. Create folders for each media type being served (manga, comics, books) plus one for Kavita’s config.
  2. Save the docker-compose.yml below and edit the volume paths to match.
  3. Run the compose file from that folder.
  4. Open the server’s IP address on port 5000 and create the first admin account.
services:
  kavita:
    image: ghcr.io/kareadita/kavita:latest
    container_name: kavita
    volumes:
      - "/path/to/manga:/manga"
      - "/path/to/comics:/comics"
      - "/path/to/books:/books"
      - "/path/to/config:/kavita/config"
    environment:
      - TZ=America/Toronto
    ports:
      - "5000:5000"
    restart: unless-stopped
docker compose up -d

The right side of each volume line, including /kavita/config, is fixed by the image and shouldn’t be renamed; the left side can point anywhere on the host. Set TZ to a real timezone so scheduled scans log correctly, per the official GitHub Container Registry install docs.

Tip: updating later is just docker compose pull, then docker compose up -d. A nightly branch also exists under the :nightly tag, best run as a second, separate container rather than swapped in for a stable install.

Warning: Kavita is still pre-1.0, and its own maintainers call it beta software. Back up the config volume before jumping major versions; zero data loss is the goal here, not a guarantee, while the schema is still moving.

Reading Kavita on mobile and through OPDS

Compatible with: the built-in web reader/PWA, full OPDS support, and community-built clients: Inkita and Kamigura for Android, Kover for mobile/desktop/web, and Turnleaf for offline EPUB reading on Android.

There’s no single official first-party mobile app the way some media servers ship one; Kavita leans on OPDS instead, and enough third-party apps already speak it that the gap barely shows. Mihon, Paperback, Panels, and Komic all connect directly, and KOReader has a dedicated plugin, Kamare, for manga including long-strip manhwa, without touching OPDS. The built-in web reader also installs as a PWA, webtoon mode and continuous reading included.

Kavita vs Calibre-Web

Calibre-Web is the closest comparison: a free, GPL-3.0 web interface by janeczku for browsing, reading, and downloading books from an existing Calibre library database, with its own OPDS feed and Kobo sync. It’s mature and widely used, but built around Calibre’s ebook-first model, so comics and manga fit less naturally than in something designed around them. Kavita skips the Calibre database requirement, scans folders directly, and treats comics, manga, and ebooks as equally first-class, including a webtoon mode Calibre-Web has no equivalent for.

KavitaCalibre-Web
Built forComics, manga & ebooks equallyEbooks, via a Calibre library
Requires an existing Calibre databaseNoYes
Webtoon / long-strip reading modeYesNo
OPDS supportYesYes
Official dedicated mobile appNone (OPDS + community clients)None (OPDS + community clients)
LicenseGPL-3.0GPL-3.0
  • Treats comics, manga, and ebooks as equally first-class
  • Reads folders directly, no separate Calibre database to build or maintain
  • Dedicated webtoon and long-strip reading mode for manga and manhwa
  • Rich, filterable metadata with ComicInfo.xml support and OIDC login
  • Still pre-1.0 and labeled beta by its own maintainers
  • No official mobile app, just OPDS plus third-party and community clients
  • Deeper metadata sync and recommendations sit behind the optional paid Kavita+ tier

FAQ

Is Kavita free?

Core Kavita is free and open source under GPL-3.0, nothing paywalled. Kavita+ is an optional subscription, roughly $4 a month after a discounted first month, adding AniList/MyAnimeList sync, external ratings, and automatic metadata.

What port does Kavita use by default?

Port 5000 on both sides of a typical docker-compose file, changeable through the port mapping like any other container.

Is Kavita legal to run?

Yes, it’s open-source software like any other self-hosted program. What matters is what gets stored on it, and this page assumes comics, manga, and books that are already legally owned.

Does Kavita support OPDS?

Yes, natively. Any OPDS-compatible reading app can browse and read directly from a Kavita server without a dedicated Kavita client installed.

Is there an official Kavita app for iOS and Android?

Not from the Kavita team itself. The built-in web reader works as an installable PWA on both platforms, and community developers maintain dedicated clients like Inkita, Kamigura, and Kover.

Can I install Kavita without Docker?

It’s not required. Native builds exist for Windows, Linux, and macOS through the official installation docs, though Docker stays the most consistent path across platforms and is what this page defaults to.

The Audiobookshelf fiche on this site covers the audio side of the same idea: a dedicated library server instead of a general media server stretched over a format it wasn’t built for. Getting a collection onto the server is a separate problem: Syncthing handles direct device-to-device sync with no cloud account, and Nextcloud fits better if a full sync platform is already in the stack. Our homelab setup guide for beginners covers the Docker basics all of these depend on.